Language/Javascript

[Javascript] 자바스크립트 반복문 - while, for

재은초 2023. 6. 20. 14:32
반응형

while 문

  • while 문은 특정 조건을 만족할 때까지 계속해서 주어진 실행문을 반복 실행한다.
  • while 문은 표현식이 참(true)이면 내부의 실행문을 계속 반복하는데, 이렇게 반복해서 실행되는 반복문을 루프(loop)라고 한다.
  • while 문 내부에 표현식의 결과를 변경하는 실행문이 존재하지 않을 경우 프로그램은 루프를 영원히 반복하는 무한 루프(infinite loop)에 빠지므로, 표현식의 결과가 거짓(false)을 갖도록 표현식를 변경하는 실행문이 필요하다.
  • while 문에서 실행될 실행문이 한 줄 뿐이라면 중괄호 {} 를 생략할 수 있다.
while (표현식) {
    표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
}
var i = 1;

while (i < 10) {               // 변수 i가 10보다 작을때만 while문 반복
    document.write(i + "<br>");
    i++;                       // 반복할 때마다 변수 i를 1씩 증가
}

 

do / while 문

  • while 문은 루프에 진입하기 전에 먼저 표현식부터 검사하지만 do / while 문은 표현식의 결과와 상관없이 먼저 do 구문을 무조건 한 번 실행한 후에 표현식을 검사하고 루프를 실행한다.
do {
    표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
} while (표현식);
var i = 1, j = 1;

while (i > 3) {                     // i 초깃값은 1이므로 반복문은 실행되지 않음
    document.write("i : " + (i++));
}

do {                                // j 초깃값은 1이므로 반복문은 단 한 번만 실행
    document.write("j : " + (j++)); // j : 1 출력
} while (j > 3);

 

for 문

  • for 문은 while 문과는 달리 자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문으로, while 문보다는 좀 더 간결하게 반복문을 표현할 수 있다.
  • 쉼표 연산자(,)를 사용하면 여러 개의 초기식이나 증감식을 동시에 사용할 수도 있으며, 초기식/표현식/증감식은 각각 생략될 수 있다.
for (초기식; 표현식; 증감식) {
    표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
}
for (var i = 1; i < 10; i++) {
    document.write(i + "<br>");
}

 

for / in 문

  • for / in 문은 해당 객체의 모든 열거할 수 있는 속성을 순회할 수 있게 해주며, 해당 객체가 가진 모든 프로퍼티를 반환하는 것이 아니라 오직 열거할 수 있는 프로퍼티만을 반환한다.
for (변수 in 객체) {
    객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}
/* for in 문을 사용하여 배열의 요소에 접근 */
var arr = [3, 4, 5];

for (var i = 0; i < arr.length; i++) { // 배열 arr의 모든 요소의 인덱스 출력
    document.write(i + " ");           // 0 1 2
}

for (var i in arr) {                   // 위와 같은 동작을 하는 for in 문
    document.write(i + " ");           // 0 1 2
}
/* for in 문을 사용하여 객체의 속성에 접근 */
var obj = { name : "이순신", age : 20 };

for (var i in obj) {
    document.write(i + " ");            // name age
}

 

for / of 문

  • for / of 문은 Array, Map, Set, arguments 같은 반복할 수 있는 객체(iterable objects)를 순회할 수 있도록 해주는 반복문으로, 루프마다 객체의 열거할 수 있는 프로퍼티의 값을 지정된 변수에 대입한다.
for (변수 of 객체) {
    객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}
/* for of 문을 사용하여 배열 요소에 접근 */
var arr = [3, 4, 5];

for (var i = 0; i < arr.length; i++) { // 배열 arr의 모든 요소의 인덱스 출력
    document.write(arr[i] + " ");      // 3 4 5
}

for (var value of arr) {               // 위와 같은 동작을 하는 for / of 문
    document.write(value + " ");       // 3 4 5
}
/* for of 문을 사용하여 Set 객체의 프로퍼티에 접근 */
var arr = new Set([1, 1, 2, 2, 3, 3]);

for (var value of arr) {
    document.write(value + " ");       // 1 2 3
}

 

Reference

반응형