for(let i = 0; i <= 3; i++) { console.log(i) }
- 초기값은 0이다.
- 해당 for 문은 결과를 총 4번 출력한다.
i
는 내부의 코드가 한 번 실행될 때마다 1씩 증가한다.i = 4
가 되면 반복문이 종료된다.
let str = 'xmas is comming soon'; for (let i = 0; i < str.length; i++) { if ( i % 2 === 1) { console.log(str[i]); } }
- str[4] 의 값은 공백이다.
- str[str.length-1] 의 값은 undefined 이다.
- 변수 str 의 길이(length) 는 20이다.
- 마지막으로 출력되는 문자열은 'n'이다.
let i = 10;
만약 숫자가 10이면, 단락에 "Countdown 10"을 출력하세요.
만약 숫자가 0이면, "Blast off!"를 단락에 출력하세요.
다른 숫자에 대해서는, 단지 단락에 그 숫자를 출력하세요.
const people = ['Chris', 'Anne', 'Colin', 'Terri', 'Phil', 'Lola', 'Sam', 'Kay', 'Bruce']; let i = 0; let admit = []; let refuse = []; //내용 console.log(`Admitted List : ${admit}`); console.log(`Refused List : ${refuse}`); //배열에 요소를 넣는 방법 : 배열명.push('넣을 내용')
- 전위형 증가 연산자를 사용한 경우(++i):
let i = 0; while (++i < 5) alert( i );
- 후위형 증가 연산자를 사용한 경우(i++):
let i = 0; while (i++ < 5) alert( i );
4번. i = 3
이 되면 반복문이 종료된다.
2번. str[str.length-1] 의 값은 마지막 문자열인 'n' 이다.
구구단의 각 숫자를 두개의 변수로 받아와서 이중 반복문을 작성한다.
for (x = 2; x <= 9; x++) { console.log(`${x} 단 :`); for (y = 1; y <= 9; y++) { console.log(`${x} x ${y} = ${x * y}`); } }
i--
를 사용하면 된다.for (let i = 10; i >= 0; i--) { if (i === 10) { console.log('Countdown 10'); } else if (i === 0) { console.log('Blast off!!'); } else { console.log(`${i}`); } }
let i = 0
으로 먼저 할당되어 있었으므로 ;으로 생략 가능하다.for (; i < people.length; i++) { if (people[i] === 'Phil') { refuse.push('Phil'); } else if (people[i] === 'Lola') { refuse.push('Lola'); } else { admit.push(people[i]); } }
이 문제는 비교 연산자와 후위/전위형 연산자를 함께 사용하는 경우 어떤 차이가 있는지 보여줍니다.
1. 전위형 증가 연산자를 사용한 경우엔 1부터 4까지 출력됩니다.
let i = 0; while (++i < 5) alert( i );
++i
는i
를 먼저 증가시키고 새로운 값을 반환하기 때문에 첫 번째 while 반복문에선 1과 5를 비교(1 < 5
)하고, 얼럿 창엔1
이 출력됩니다.
1에 이어서2, 3, 4…
이 출력됩니다.i
앞에++
가 붙어있기 때문에5
는 항상 증가 이후의 값과 비교됩니다.
i = 4
이후에i
의 값이5
로 증가하면 while(5 < 5
안의 비교가 실패하기 때문에 반복문은 멈춥니다. 따라서 5는 출력되지 않습니다.
2. 후위형 증가 연산자를 사용한 경우엔 1부터 5까지 출력됩니다.
let i = 0; while (i++ < 5) alert( i );
후위 증가 연산자를 적용하면i++
는i
를 증가시키긴 하지만 기존 값을 반환합니다. 따라서 첫 번째 while 반복문에선 0과 5를 비교(0 < 5
)합니다. 이 점이 전위 증가 연산자와의 차이입니다.
그런데 alert문은 조건문과 별개의 문이므로 얼럿창엔 1이 출력됩니다. i는 이미 증가한 이후이기 때문이죠.
1이 출력된 이후에 2, 3, 4…가 이어서 출력됩니다.
i = 4
일 때 잠시 생각을 가다듬어 봅시다. 전위 증가 연산자(++i)
를 사용하면 값이 먼저 증가하기 때문에 5와5
를 비교하게 되는데, 여기선 후위 증가 연산자(i++
)를 사용하고 있으므로i
는 증가하지만 기존 값인4
가 비교에 사용됩니다. 따라서 while(4 < 5
)가 되고, 해당 조건은 참이므로 하단 블록이 실행되어 alert 창이 뜨게 됩니다.
다음 반복문은 while(5 < 5
)이므로 마지막 출력되는 값은 5가 됩니다.