while (condition) {
// 반복해서 실행할 코드
// '반복문 본문(body)'이라 불림
}
condition(조건)
이 truthy
이면 반복문 본문의 코드
가 실행// while문을 이용하여 1 부터 100까지 더하고 그 결과를 출력하시오.
let a = 0;
let b = 0;
while (b<=100) {
a = a + b;
b++;
}
console.log(a)
// 5050
배열 요소를 하나하나 꺼내서 특정 문장을 실행할 때 사용
for ( 초기화문; 조건문; 반복이 될 때마다 실행되는 코드(증감식) {
수행할 동작
}
for (begin; condition; step) {
// ... body ...
}
begin
: 반복문에 진입할 때 단 한 번 실행
condition
: 반복마다 해당 조건이 확인됨, false이면 반복문을 멈춤
body
: condition이 truthy일 동안 계속해서 실행
step
: 각 반복의 body가 실행된 이후에 실행, 증감식에서 i += 2 이렇게 표현하면 2씩 증가.
for (let i = 0; i < 3; i++) {
console.log(i);
}
단계별로 보면,
// begin을 실행함
let i = 0
// condition이 truthy이면 → body를 실행한 후, step을 실행함
i = 0 < 3이 true이므로 → body console.log(0) 실행 → i++
// condition이 truthy이면 → body를 실행한 후, step을 실행함
i = 1 < 3이 true이므로 → body console.log(1) 실행 → i++
// condition이 truthy이면 → body를 실행한 후, step을 실행함
i = 2 < 3이 true이므로 → body console.log(2) 실행 → i++
// i == 3이므로 반복문 종료
console.log( )를 어디에 두는 지에 따라 결과가 달라짐
let a = [ ]
for ( i=100; i < 111; i++) {
a.push(i)
console.log(a)
}
//
[100]
[100, 101]
[100, 101, 102]
[100, 101, 102, 103]
[100, 101, 102, 103, 104]
[100, 101, 102, 103, 104, 105]
[100, 101, 102, 103, 104, 105, 106]
[100, 101, 102, 103, 104, 105, 106, 107]
[100, 101, 102, 103, 104, 105, 106, 107, 108]
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
let b = [ ]
for ( i=100; i < 111; i++) {
b.push(i)
}
console.log(b)
//
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
for문은 큰 숫자에서 작은 숫자로 진행하는 것도 가능
let ourArray = [];
for (let i=10; i > 0; i -= 2) {
ourArray.push(i);
}
console.log(ourArray)
// [10, 8, 6, 4, 2]
for(let i = 0; i < 10; i++){
if(i === 5) {
break;
}
console.log('coding everybody' + i);
}
원래는 10행이 출력되어야 하지만 5행만 출력됨
break는 반복문을 그 자리에서전체 반복문을 즉시 종료
시킨다
for(let i = 0; i < 10; i++){
if(i === 5) {
continue;
}
console.log('coding everybody' + i);
}
coutinue는 break와 다르게 그 단계의 실행은 중단하지만 나머지 반복은 진행시킴. continue는 if문 안에 있기 때문에 if문의 조건이 true인 현재 iteration만 멈추고 반복문이 다음 iteration을 실행시키게 함. 해당 단계만 중단시키고 나머지 진행
i와 j를 반복하면서 프롬프트 창에 (0,0)부터 (2,2)까지를 구성하는 좌표 (i, j)를 입력하게 해주는 예시
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
}
}
alert('완료!');
레이블(label)
은 반복문 앞에 콜론과 함께 쓰이는 식별자outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나옵니다.
if (!input) break outer; // (*)
// 입력받은 값을 가지고 무언가를 함
}
}
alert('완료!');
위 예시에서 break outer는 outer라는 레이블이 붙은 반복문을 찾고, 해당 반복문을 빠져나오게 해줌.