-
반복문 빠져나오기 - break, continue, labelJavaScript 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