Post

테스트 오답 노트

01) 1번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
10
11
{
        const arr = [100, 200, 300, 400, 500];

        const text1 = arr.join("*");
        const text3 = arr.join("");
        const text4 = arr.join(" ");
    
        console.log(text1);
        console.log(text3);
        console.log(text4);
}   


1
const arr = [100, 200, 300, 400, 500];
  • 이 줄은 arr라는 이름의 상수를 선언하고, 숫자 100, 200, 300, 400, 500을 요소로 갖는 배열을 할당합니다.
    const 키워드는 arr의 값이 실행 중에 변경되지 않습니다.


1
const text1 = arr.join("*");
  • arr.join(“”) 호출은 배열 ‘arr’의 각 요소 사이에 ‘’ 문자를 삽입하여 이를 하나의 문자열로 합칩니다.
    따라서 ‘text1’ 에는 100*200*300*400*500* 이라는 문자열이 저장됩니다.
    ‘join’ 메소드 배열의 모든 요소를 지정된 구분자로 연결한 새 문자열을 반환합니다.


1
const text3 = arr.join("");
  • arr.join(“”) 호출은 배열의 요소들을 구분자 없이 연결합니다.
    결과적으로 text3에는 “100200300400500”이라는 문자열이 저장됩니다.
    여기서 구분자가 빈 문자열이므로, 배열의 요소들이 서로 바로 붙어있게 됩니다.


1
const text4 = arr.join(" ");
  • arr.join(“ “) 호출은 배열의 요소들 사이에 공백을 구분자로 사용하여 연결합니다.
    그 결과 text4 변수에는 “100 200 300 400 500”이라는 문자열이 저장됩니다.
    각 숫자 사이에 공백이 들어가서 요소들이 눈에 띄게 구분됩니다.


정답
console.log(text1); “100200300400500”
console.log(text3); “100200300400500”
console.log(text4); “100 200 300 400 500”


02) 2번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
{
        let a, b = 10;

        for(let i=0; i<5; i++){
            a = i;
            b -= a;
        }
        console.log(a, b)
}


03) 3번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
10
11
12
13
{
        function func(){
            let i = 20, j = 20, k = 30;
            i /= j;
            j -= i;
            k %= j;
    
            console.log(i);
            console.log(j);
            console.log(k);
        }
        func();
}


04) 4번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
10
11
12
13
{
        function func(){
            let i = 20, j = 20, k = 30;
            i /= j;
            j -= i;
            k %= j;
    
            console.log(i);
            console.log(j);
            console.log(k);
        }
        func();
}


1
    let i = 20, j = 20, k = 30;
  • 여기서는 변수 i, j, k를 선언하고, 각각 20, 20, 30의 값을 할당합니다.
1
    i /= j;
  • 변수 i의 값을 변수 j의 값으로 나눈 후 그 결과를 i에 다시 할당합니다.
    즉, i는 이제 1이 됩니다.
1
    j -= i;
  • 변수 j의 값을 변수 i의 값만큼 감소시킨 후 그 결과를 j에 다시 할당합니다.
    즉, j는 이제 19가 됩니다.
1
    k %= j;

변수 k의 값을 변수 j의 값으로 나눈 나머지를 k에 다시 할당합니다.
즉, k는 이제 11이 됩니다.


결과값 1
19
11


05) 5번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
{
        let num1 = 3;
        let num2 = 7;
        if(++num1 > 5 || num2++ < 1){
                console.log(num1);
        }
        console.log(num2)
}


06) 6번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
{
        let num = [1, 5, 1, 2, 7, 5];
        for(let i=0; i<6; i++){
                if((i+2) % 2 == 0){
                        console.log(num[i]);
                }
        }
} 


07) 7번째 문제


다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
10
11
12
13
{
        let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

        for(let i=0; i<=9; i++){
                switch(num[i] % 2){
                        case 1:
                            console.log(num[i]);
                            break;
                        default:
                            console.log("*");
                }
        }
}


1
for(let i=0; i<=9; i++){
  • 여기서는 for 반복문을 사용합니다. i가 0부터 9까지 증가하는 동안 반복합니다.
1
        switch(num[i] % 2){

여기서는 switch문을 사용합니다.
num[i] % 2의 결과에 따라 다른 동작을 수행합니다.
num[i]는 현재 인덱스 i에 해당하는 배열 요소를 나타냅니다.
% 연산자는 나머지를 반환합니다. 따라서 현재 요소가 홀수인지 짝수인지 판별하기 위해 2로 나눈 나머지를 확인합니다

1
                case 1:
  • 만약 num[i] % 2의 결과가 1이라면, 즉 현재 요소가 홀수라면 이 경우가 실행됩니다.
1
                    console.log(num[i]);
  • 홀수인 경우에는 해당 숫자를 콘솔에 출력합니다.
1
                    break;
  • break 문을 사용하여 switch 문을 빠져나옵니다.
1
                default:
  • 위의 case에 해당하지 않는 경우, 즉 짝수인 경우에는 default 블록이 실행됩니다.
1
                    console.log("*");
  • 짝수인 경우에는 별표(*)를 콘솔에 출력합니다.

결과값

  • 1
  • 3
  • 5
  • 7
  • 9

08) 8번째 문제

다음을 보고 결괏값을 작성하시오!

1
2
3
4
5
6
7
8
9
10
11
{
        let cnt = 0;
        let sum = 0;
        for(let i=0; i<=7; i++){
                if(i%2 == 1){
                        cnt++;
                        sum += i;
                }
        }
        console.log(cnt + ", "+sum/2);
}


1
2
let cnt = 0;
let sum = 0;
  • 여기서는 변수 cnt와 sum을 선언하고, 각각 0으로 초기화합니다.
    cnt는 홀수의 개수를 세기 위한 변수이고, sum은 홀수의 합을 저장하기 위한 변수입니다.
1
for(let i=0; i<=7; i++){
  • 여기서는 for 반복문을 사용하여 변수 i를 0부터 7까지 증가시킵니다.
1
        if(i%2 == 1){

if 문에서는 현재의 i 값이 홀수인지 확인합니다.
홀수인 경우에는 아래의 블록이 실행됩니다.

1
2
                cnt++;
                sum += i;
  • cnt를 1 증가시키고, sum에 현재의 i 값을 더합니다.
1
console.log(cnt + ", "+sum/2);
  • 마지막으로, 홀수의 개수인 cnt와 홀수의 합인 sum을 출력합니다.
    이 때, 홀수의 합을 홀수의 개수로 나눈 값을 출력합니다.


따라서 콘솔에는 다음과 같이 출력됩니다

1
4, 12
This post is licensed under CC BY 4.0 by the author.