`w

`while`문 에서 JavaScript

8개의 연습 문제

`while`문 소개

일반적인 문법

while문을 사용하면 특정 조건이 충족되는 동안 코드를 반복해서 실행할 수 있어요.

while 키워드를 쓰고, 그 뒤에 소괄호로 감싼 조건과, 중괄호로 감싼 루프의 _본문_을 담은 코드 블록을 붙여서 작성해요.

while (condition) {
  // code that is executed repeatedly as long as the condition is
  // true
}

JavaScript에는 do-while문도 있어요. 이 문법에서는 루프 본문을 실행한 뒤에 조건을 검사해요. 조건이 본문에서 수행한 계산에 따라 달라질 때 유용해요.

do {
  // The code here will always be executed once and then
  // repeatedly while the condition is true.
} while (condition);

break

루프 본문 안에서 break 키워드를 사용하면 루프 실행을 완전히 멈출 수 있어요. 이때 조건으로 true를 함께 쓰는 경우가 많아요. 이렇게 하면 루프 본문 어디에서든 루프를 언제 멈출지 제어할 수 있어요.

const winningNumber = 7;

while (true) {
  const num = readUserGuess();
  if (num === winningNumber) {
    break;
  }
}

break 키워드는 루프 안에 중첩된 함수 안에서는 사용할 수 없어요. 예시는 MDN 문서를 참고해요.

continue

break와 달리 continue 키워드는 현재 반복의 실행만 멈추고 다음 반복으로 넘어가요. continue를 사용하면 루프 본문의 많은 부분을 if문으로 감싸는 일을 자주 피할 수 있어요.

let i = 0;

while (i < 100) {
  i = i + 2;

  if (i % 3 === 0) {
    continue;
  }

  // The code here will only be executed when i was not divisible
  // by 3 in the check above.
}

무한 루프

루프 조건이 항상 충족되고 루프 본문에서 break나 return문에 도달하지 않으면 (이론적으로) 영원히 반복되는 루프가 만들어져요. 이 경우 실행은 외부에서 종료해야 해요. 이런 코드가 실행되는 환경에 따라 자동으로 종료되기도 하고, 직접 개입해야 하기도 해요.

let i = 0;

while (i < 100) {
  if (i % 3 === 0) {
    continue;
  }

  i = i + 2;
}

// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.

이런 단순한 예제에서는 무한 루프를 찾아내는 게 쉬워 보일 수 있지만, 코드가 더 복잡해지면 항상 그렇게 간단하지만은 않아요. 조건이 결국 거짓이 되는지, 또는 break나 return문에 도달하는지 꼼꼼히 따져 보는 것이 좋은 습관이에요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

`while`문 배우기