English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 강의

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 강의

JavaScript 참조 매뉴얼

JavaScript While 루프

조건이 참이면 코드 블록을 실행할 수 있습니다.

While 루프

while 조건의 값이 참이면 루프가 실행되는 문장입니다.

while 루프의 문법은 다음과 같습니다:

while (condition) { // 조건이 참이면 코드를 실행합니다}
var n = 0;
while (n < 5) {
   document.write("<br>이 숫자는 " + n);
   n++;
}
테스트를 보자‹/›

주의:와 같은 조건을 사용하려면조건의 변수를 사용하려면, 루프 전에 초기화하고, 루프 내에서 증가시켜야 합니다. 변수를 증가시키지 않으면 루프가 결코 끝나지 않습니다. 이는 브라우저가 충돌할 수 있습니다.

무한 루프

하나무한 루프라고 이름이 붙여졌듯이, 영원히 실행되는 루프입니다. 무한 루프를不小심히 만들면 브라우저나 컴퓨터가 충돌할 수 있습니다. 무한 루프를 인식하여 피할 수 있도록 중요합니다.

while 문의 조건이 설정되면,true이럴 때, 일반적인 무한 루프가 발생합니다.

  while (true) {
    // 항상 코드 실행
  }

무한 루프는 영원히 실행됩니다. 하지만 break 키워드를 사용하여 프로그램을 종료할 수 있습니다.

Do ... While 루프

이 do...while 루프는 while 루프의 변형입니다. 조건이 참인지 확인하기 전에 이 루프는 코드 블록을 한 번 실행하고, 조건이 참이면 루프를 반복합니다.

이 do...while 루프의 문법은 다음과 같습니다:

do {
// 실행할 문장
}
while (condition);
do {
   document.write("<br>숫자는 " + n);
   n++;
}
while (n < 5);
테스트를 보자‹/›

조건에서 사용하는 변수를 기억하지 마세요. 그렇지 않으면 루프가 결코 끝나지 않습니다.

주의:조건이 false라도 이 루프는 항상 최소한 한 번은 실행됩니다. 코드 블록은 조건 테스트 전에 실행되기 때문입니다:

var n = 5;
do {
   document.write("<br>숫자는 " + n);
   n++;
}
while (n < 3);  // false
테스트를 보자‹/›

while과 do ... while 루프 간의 차이

while 루프는 do…while 루프와 중요한 방식으로 사용됩니다. 각 루프 반복 시작 시 계산할 조건을 테스트하기 때문에 조건 표현식의 계산 결과가 false라면 루프가 결코 실행되지 않습니다.

반면에 do ... while 루프는 조건 표현식의 계산 결과가 false라 하더라도 항상 한 번은 실행됩니다. while 루프와 달리, 조건은 루프 반복의 마지막에 계산되는 것이 아니라 반복 시작 때 계산됩니다.

For와 While 루프 비교

이전 장에서 for 루프에 대해 설명한 내용을 읽었다면, while 루프가 for 루프와 매우 유사하다는 것을 발견할 수 있을 것입니다. while 루프는 초기화와 최종 표현식을 제외하고 매우 유사합니다.

이 예제에서 for 루프는 fruits 배열에서 과일 이름을 가져오기 위해 루프를 사용합니다:

var fruits = ['Apple', 'Mango', 'Banana', 'Orange'];
var txt = '';
for (var i = 0; i < fruits.length; i++) {
txt += fruits[i] + '<br>';
}
테스트를 보자‹/›

이 예제에서 while 루프는 fruits 배열에서 과일 이름을 가져오기 위해 루프를 사용합니다:

var fruits = ['Apple', 'Mango', 'Banana', 'Orange'];
var txt = '';
var i = 0;
while (i < fruits.length) {
 txt += fruits[i] + '<br>';
 i++;
}
테스트를 보자‹/›