ABOUT ME

-

오늘
-
어제
-
-
  • [JS] 반복문 알아보기
    Front-end/Javascript 2020. 11. 29. 22:20

    반복문

    반복문은 일정한 처리를 한 다음 원래 위치로 돌아가 똑같은 처리를 반복하는 처리를 표현합니다.

    while 문

    while 문은 조건만 맞다면 일정한 처리를 계속 반복해서 실행합니다.

    while (조건식) {
      // do something...
      // break, continue 사용 가능
    }

    while문을 실행하면 가장 먼저 조건식을 평가하고 true면 while 문 블럭을, false면 블럭을 벗어납니다.

    반복문에서도 break와 continue를 사용할 수 있습니다.

    • break 문 사용시 : while 문에서 빠져나옴
    • continue 문 사용시 : while 문의 시작부분으로 돌아감

     

    예제를 통해 알아보겠습니다.

    function fact(n) {
      var k = 1;
      var i = 1;
    
      while (i < n) {
        k *= ++i;
      }
      return k;
    }
    fact(5); // 120

    n을 입력하고 i < n이라는 조건을 만족할 때 까지 반복하고 조건이 만족하지 않으면 블럭을 벗어나 k를 리턴합니다.

    for 문

    for문은 반복 조건의 초기화 작업, 조건식, 반복 조건을 갱신 이 세가지 작업을 한 번에 선언합니다. 즉, 실수를 방지하기 쉽고 보고 이해하기 편해 자주 사용합니다.

    for (초기화 식; 조건식; 반복식) {
        // do something...
    }

    그렇다면 for 문의 반복은 어떤 순서로 되는지 알아보겠습니다.

    1. 초기화 식을 단 한번 실행
    2. 조건식을 평가 true / false
    3. true면 블럭을 실행 / false면 블럭을 이탈(반복 끝)
    4. 반복식을 실행

     

    간단하게 예를 들어보겠습니다.

    for (var i = 0; i < 10; i++) {
      console.log(i);
    }

    위 코드는 아래의 순서로 실행됩니다.

    1. 변수 i를 실행하고 0으로 초기화
    2. 반복할 때 i < 10 의 조건을 만족하는지 확인한다.
    3. true면 블럭 내 console.log(i)를 실행한다.
    4. 블럭내 코드가 끝나면 반복식인 i++가 실행되어 i 값이 1 증가한다.
    5. i가 10이 될 때까지 1~4를 반복한다.
    6. i가 10이 되면 반복을 멈추고 블럭을 이탈한다.

     

    즉 i는 0부터 9까지 반복하고 블럭을 빠져나오게 됩니다.

    만약에 for 문을 무한 반복하고 싶다면 어떻게 해야할까요?

    바로 조건식을 생략하게 되면 무한으로 반복하게 됩니다.

    for (var i = 0; ; i++) {
      console.log(i);
    }

    위 코드를 입력하면 i가 0부터 시작하여 1씩 추가되는 무한 반복이 실행됩니다.

    여기서 추가로 초기화 식, 반복식을 뺄 수도 있습니다.

    for (;;) {
      console.log("무한반복");
    }

    보는 것고 같이 모든 식을 생략할 수는 있지만, 각 식의 세미콜론은 생략할 수 없습니다.

    for of

    for of는 iterable한 객체에 모두 사용할 수 있습니다. 대표적으로 배열에 많이 사용합니다.

    for (const i of [1, 2, 3]) {
      console.log(i); // 1, 2, 3
    }

    for in

    for in은 모든 프로퍼티에서 사용 가능합니다. 대표적으로 객체가 있습니다.

    for (const i in { a: 1, b: 2, c: 3 }) {
      console.log(i); // a, b, c
    }

    'Front-end > Javascript' 카테고리의 다른 글

    [JS] 프로미스(Promise) 알아보기  (0) 2020.11.29
    [JS] 클래스 알아보기  (0) 2020.11.29
    [JS] 조건문 알아보기  (0) 2020.11.29
    [JS] 이벤트 알아보기  (0) 2020.11.29
    [JS] 연산자 알아보기  (0) 2020.11.29

    댓글