[JS] while, for

KJA·2022년 6월 15일
0

while

syntax

while (condition) {
  // 코드
  // '반복문 본문(body)'이라 불림
}
  • condition(조건)이 truthy면 반복문 본문이 실행됩니다.

    반복문 본문이 한 번 실행되는 것을 반복(iteration, 이터레이션) 이라고 부릅니다.

do...while

do...while을 사용하면 condition을 반복문 본문 아래로 옮길 수 있습니다.

do...while문법은 조건이 truthy인지 아닌지에 상관없이, 본문을 최소한 한 번이라도 실행하고 싶을 때만 사용해야합니다.

syntax

do {
  // 반복문 본문
} while (condition);

for

syntax

for (begin; condition; step) {
  // ... 반복문 본문 ...
}

구성요소

예시

for (let i = 0; i < 3; i++) { // 0, 1, 2
  alert(i);
}
구성요소
begini = 0반복문에 진입할 때 단 한 번 실행됩니다.
conditioni < 3반복마다 해당 조건이 확인됩니다. false이면 반복문을 멈춥니다.
bodyalert(i)condition이 truthy일 동안 계속해서 실행됩니다.
stepi++각 반복의 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 지시자를 사용해 멈출 수 있습니다.

0개의 댓글