Post

자바스크립트 공부 - 반복문(Loop)

자바스크립트 공부 - 반복문(Loop)

프로그래밍에서 똑같은 코드 여러번 작성하지 않고 특정 조건에 도달할 때까지 같은 동작을 반복하도록 하는 방법을 익히는 건 사실상 필수다.

본 포스팅에서는 JavaScript에서 사용할 수 있는 여러가지 반복문을 익혀본다. 최대한 쉽게

for 문

가장 기본이라 할 수 있는 for 문부터 알아보자.

일단 기본 구조는 이렇다.

1
2
for ([initialExpression]; [conditionExpression]; [incrementExpression])
  statement
  • initialExpression (초기문) : 반복문 시작하기 위한 초기 조건 설정
  • conditionExpression (조건문) : 반목문을 끝내기 위한 종료 조건을 설정 (조건이 true이면 다음 반복, false이면 종료)
  • incrementExpression (증감문) : 반복문을 한 번 실행할 때마다 반복문에 사용되는 변수를 업데이트

그래서 예시를 보면 아래와 같다.

1
2
3
for (let i = 0; i < 5; i++) {
  console.log(i);
}

i라는 변수를 0으로 설정한 후, i가 5보다 작을 때까지는 계속 실행하는 건데, 이 때 반복문을 돌 때마다 i는 1씩 더해진다. 그래서 위 코드를 실행하면 0, 1, 2, 3, 4가 차례로 출력된다.

만약 4부터 0까지 거꾸로 출력하고 싶다면 이렇게 응용해볼 수 있겠다.

1
2
3
for (let i = 4; i >= 0; i--) {
  console.log(i);
}

반복문에서 배열(array) 활용하기

배열에 있는 항목들을 하나씩 가져와서 무언가를 하고 싶을 때도 for문이 유용하다.

예를 들면 이렇게 쓸 수 있겠다.

1
2
3
4
const colors = ['red', 'green', 'blue'];
for (let i = 0; i < colors .length; i++){
  console.log(animals[i]);
}

배열의 .length를 활용해서 전체 반복할 횟수를 구해놓은 뒤, i라는 인덱스를 1씩 증가시키면서 처리하는 방식.

위 코드를 실행하면 배열 안에 있는 항목들이 하나씩 순서대로 출력되는 걸 확인할 수 있다.

반복문 중첩해서 사용하기

반복문 안에 다른 반복문을 넣어서 사용할 수도 있다. 이를 Nested Loop 라고 부르는데 아무튼…

일단 예제를 보자. 숫자들이 담긴 두 개의 배열이 있는데, 그것들을 하나씩 꺼내서 비교하다가 똑같은 숫자가 있을 경우 그것만 출력하기.

1
2
3
4
5
6
7
8
9
const array1 = [5, 10, 15];
const array2 = [10, 20, 30];
for (let i = 0; i < array1.length; i++) {
  for (let j = 0; j < array2.length; j++) {
    if (array1[i] === array2[j]) {
      console.log(array[j])
    }
  }
};

우선 상위 반복문에서 array1의 첫번째 항목을 꺼내고, 그 안에서 하위 반복문으로 array2의 각 항목들을 차례로 꺼내 비교해본다. 그 다음 다시 array1의 두번째 항목을 꺼내고, 그 안에서 하위 반복문으로 array2 각 항목들을 차례로 꺼내 비교… 이걸 반복하는 거다.

while 문

while (조건문) 형식으로 반복문을 쓰면 이 조건이 참이기만 하면 무조건 반복한다.

1부터 4까지 차례로 출력하는 for문을 while문으로 고쳐쓰면 아래 예시와 같다.

1
2
3
4
5
6
7
8
9
for (let i = 0; i < 5; i++) {
  console.log(i);
}

let j = 0;
while (j < 5) {
  console.log(j);
  j++;
}

do…while 문

때로는 일단 코드를 실행한 다음 특정 조건에 따라 반복할지 그만둘지 결정하는 반복문을 만들어야 할 때도 있다. 이때 필요한 게 do…while 문이다. do…while 문은 일단 작업을 한 번 수행한 후 지정된 조건이 참인지 거짓인지 확인해서 참이면 반복, 거짓이면 중단한다.

0부터 4까지 차례로 출력하는 for문을 do…while문으로 고쳐 쓰면 아래와 같을 거다.

1
2
3
4
5
6
7
8
9
for (let i = 0; i < 5; i++) {
  console.log(i);
}

let j = 0;
do {
  console.log(j);
  j++;
} while (j < 5);

while문과의 차이점이 있다면, do…while은 일단 코드를 실행하고 그 다음에 조건을 본다는 것.

1
2
3
4
5
6
7
while (true === false){
  console.log('이건 출력 안 된다.')
};

do {
 console.log('이건 출력된다.')
} while (true === false);

break로 반복문 중단하기

반복문 중간에 break를 사용해서 특정 조건이 참일 경우 반복문을 중단하고 빠져나올 수 있다.

예시를 보자.

1
2
3
4
5
6
7
8
9
let i = 0;
while (true) {
  console.log(i);
  i++;
  if (i === 5 ) {
    console.log("THE END");
    break;
  }
}

일단 while문 조건으로 true를 써줬기 때문에 무한 반복하는 반복문이다. i라는 변수를 출력하고 1 더하는 작업을 반복.

그런데 만약 중간에 만약 i가 4라면 중단하는 조건을 추가해보았다. 그러면 0,1,2,3,4까지는 제대로 반복하는데, 5차례에서는 if 조건문을 타고 가서 break를 만나고 반복문을 탈출한다.


시리즈: 자바스크립트 공부

  1. 기초
  2. 변수
  3. 조건문
  4. 함수
  5. 스코프(Scope)
  6. 배열(Array)
  7. 반복문(Loop)  ← 현재 글
  8. 반복자(Iterator)
This post is licensed under CC BY 4.0 by the author.