반복문(loop) 을 사용하면 동일한 코드를 여러 번 반복할 수 있음
condition(조건)이 truthy 이면 반복문 본문의 코드가 실행됨
while (condition) {
// 코드
// '반복문 본문(body)'이라 불림
}
let i = 0;
while (i < 3) { // 0, 1, 2가 출력됩니다.
alert( i );
i++;
}
while과 비슷한데 condition을 반복문 본문 아래로 옮김
do {
// 반복문 본문
} while (condition);
let i = 0;
do {
alert( i );
i++;
} while (i < 3);
가장 많이 쓰이는 반복문
for (begin; condition; step) {
// ... 반복문 본문 ...
}
for (let i = 0; i < 3; i++) { // 0, 1, 2가 출력됩니다.
alert(i);
}
let i = 0; // i를 선언하고 값도 할당하였습니다.
for (; i < 3; i++) { // 'begin'이 필요하지 않기 때문에 생략하였습니다.
alert( i ); // 0, 1, 2
}
for (; i < 3;) { // while(i < 3)과 동일
alert( i++ );
}
for (;;) {
// 끊임 없이 본문이 실행됩니다.
}
특별한 지시자인 break를 사용하면 언제든 원하는 때에 반복문을 빠져나올 수 있음
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.", '');
if (!value) break; // (*)
sum += value;
}
alert( '합계: ' + sum );
현재 실행 중인 이터레이션을 멈추고 반복문이 다음 이터레이션을 강제로 실행
for (let i = 0; i < 10; i++) {
// 조건이 참이라면 남아있는 본문은 실행되지 않습니다.
if (i % 2 == 0) continue;
alert(i); // 1, 3, 5, 7, 9가 차례대로 출력됨
}
labelName: for (...) {
...
}
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('완료!');