while (condition) {
// 코드
// '반복문 본문(body)'이라 불림
}
condition(조건)
이 truthy면 반복문 본문이 실행됩니다.반복문 본문이 한 번 실행되는 것을 반복(iteration, 이터레이션) 이라고 부릅니다.
do...while
을 사용하면 condition
을 반복문 본문 아래로 옮길 수 있습니다.
do...while
문법은 조건이 truthy인지 아닌지에 상관없이, 본문을 최소한 한 번
이라도 실행하고 싶을 때만 사용해야합니다.
do {
// 반복문 본문
} while (condition);
for (begin; condition; step) {
// ... 반복문 본문 ...
}
예시
for (let i = 0; i < 3; i++) { // 0, 1, 2
alert(i);
}
구성요소 | ||
---|---|---|
begin | i = 0 | 반복문에 진입할 때 단 한 번 실행됩니다. |
condition | i < 3 | 반복마다 해당 조건이 확인됩니다. false이면 반복문을 멈춥니다. |
body | alert(i) | condition이 truthy일 동안 계속해서 실행됩니다. |
step | i++ | 각 반복의 body가 실행된 이후에 실행됩니다. |
begin
이 한 차례 실행된 이후에, condition
확인과 body
,step
이 계속해서 반복 실행된다.
break
를 사용하면 반복문을 빠져나올 수 있습니다.
//사용자에게 일련의 숫자를 입력하도록 안내하고, 사용자가 아무런 값도 입력하지 않으면 반복문을 '종료’
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.", '');
if (!value) break; // (*)
sum += value;
}
alert( '합계: ' + sum );
continue
는 전제 반복문을 멈추지 않습니다. 대신에 연재 실행 중인 이터레이션을 멈추고 다음 이터레이션을 강제로 실행합니다.(조건을 통과할 때)
continue
는 현재 반복을 종료시키고 다음 반복으로 넘어가고 싶을 때 사용할 수 있습니다.
// 홀수만 출력
for (let i = 0; i < 10; i++) {
// 조건이 참이라면 남아있는 본문은 실행되지 않습니다.
if (i % 2 == 0) continue;
alert(i); // 1, 3, 5, 7, 9
}
i
가 짝수이면 continue
가 본문 실행을 중단시키고 다음 이터레이션을 실행되게 합니다(i가 하나 증가하고, 다음 반복이 실행됨).
레이블(label)
은 반복문 앞에 콜론과 함께 쓰이는 식별자입니다.
labelName:
for (...) {
...
}
반복문 안에서 break <labelName>
문을 사용하면 레이블에 해당하는 반복문을 빠져나올 수 있습니다.
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('완료!');
while(true)
를 써서 만듭니다. 무한 반목문은 여타 반복문과 마찬가지로 break
지시자를 사용해 멈출 수 있습니다.