본문 바로가기
자바스크립트 Deep Dive

[Javascript] 중첩 for문에서 탈출하기 - 레이블(label) 이용

by 준생님 2023. 2. 5.

중첩된 for문에서 for문 바깥으로 나와버리고 싶을때가 있다.

break;가 쉽게 떠올리지만

break문은 한단계만 탈출이 가능하다.

for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        if (i == 1) break;
        console.log(`inner [${i}, ${j}]`);
    }
}

결과값 :

 

내가 원하는 동작이 i==1이 되면 for문을 아예 나와버리고 싶을 때

레이블을 이용하면 쉽게 탈출이 가능하다.

(물론 위 조건의 경우 for문의 바깥 스코프에서 break;하면 되겠지만 조건이 까다롭다고 상상해보자)

outer: for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        if (i == 1) break outer;
        console.log(`inner [${i}, ${j}]`);
    }
}

for문에 outer라는 레이블을 달아두고

break outer;문을 사용하면 여러번 중첩된 for문 스코프도 한번에 탈출이 가능하다.

알고있다면 간간히 유용하게 쓰일 문법이니 알고있으면 좋다.