ABOUT ME

Today
Yesterday
Total
  • 반복문 빠져나오기 - break, continue, label
    JavaScript 2021. 4. 22. 21:37

    자바스크립트에서 반복문을 사용할 때 for loop와 while을 사용하는데, 조건문이 falsy 한 경우 반복문을 빠져나오게 된다.

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

    위 코드에서는 i가 3이 되면 조건문이 falsy 가 되어 반복문을 종료하게 된다.

     

    그런데 이외에도 반복문을 빠져나올 수 있는 방법이 있는데, break, continue, label을 활용한 방법이 있다.

    let sum = 0;
    
    while (true) {
    
      let input = Number(prompt("숫자를 입력하세요.", ''))
    
      if (!input) break;
    
      sum += input;
    
    }
    alert( '합계: ' + sum );

    위 코드에서는 사용자가 빈 문자열을 입력하거나 cancel을 클릭하면 반복문을 빠져나오게 된다. 이처럼 본문 중간에 조건을 확인해야 할 때 break를 사용할 수 있다.

     

    break를 만났을 때는 반복문 자체가 종료되는 반면, continue를 사용하면 현재의 반복(iteration)만을 멈추고 반복문이 수행하려고 했던 다음 반복으로 넘어가게 된다.

    *반복(iteration) : 반복문에서 본문이 한 번 실행되는 것을 반복(iteration)이라고 함.

    for(let i = 0 ; i < 10; i++) {
        if( i % 3 === 0 ) continue;
        console.log(i)
    } // 1, 2, 4, 5, 7, 8이 출력된다

    위 코드에서는 i가 3의 배수인 경우 continue를 만나서 아랫줄의 console.log(i) 코드를 실행하지 않고 다음 반복으로 넘어가게 된다.

     

    마지막으로 label(레이블)을 활용하는 방법이 있는데, 여러 개의 중첩된 반복문을 한 번에 빠져나와야 할 때 사용할 수 있다.

    let main = ['피자', '치킨', '햄버거', '쿠키', '머핀'];
    let drink = ['콜라', '사이다', '우유', '커피', '맥주'];
    main: for(let i = 0; i < main.length; i++) {
      drink: for(let j = 0; j < drink.length; j++) {
        let input = prompt(`${main[i]}${drink[j]}의 조합 어때요?
        ${main[i]}가(이) 싫으면 1을, 아무것도 먹기 싫으면 2를 입력하세요`)
        if(input === '1') break drink;
        if(input === '2') break main;
      }
    } 

    레이블은 위 코드에서 "main:", "drink:" 처럼 반복문 앞에서 콜론과 함께 쓰는 식별자다. 반복문 안에서 break <레이블 이름>문을 사용하면 해당 레이블의 반복문을 빠져나올 수 있다.

    'JavaScript' 카테고리의 다른 글

    객체를 복사할 때 유의할 점  (0) 2021.04.28
    이벤트 버블링(bubbling)  (0) 2021.03.04
    클로저(closure)  (0) 2020.12.07
    "use strict"  (0) 2020.12.04
    호이스팅  (0) 2020.10.28

    댓글

Designed by Tistory.