JavaScript

[JavaScript] 이중 for문 한번에 탈출

hrming 2024. 12. 17. 16:09

이중 for문으로 데이터를 비교하다가 부적합한 데이터가 확인되어 한번에 for문을 나오게 해야하는 경우, 아래와 같이 라벨/플래그 변수/함수 을(를) 사용할 수 있다.

☑️ 라벨의 사용법
- 라벨 정의 : 반목문 앞에 라벨을 선언함. 라벨 이름 뒤에는 반드시 콜론(:)이 붙음
- 라벨 사용 : break 또는 continue와 함께 라벨 이름을 사용하여 해당 반복문을 종료하거나 다음 반복으로 넘김

outerLoop: // 라벨 이름
for (let i = 0; i < 5; i++) {
  for (let j = 0; j < 5; j++) {
    console.log(`i: ${i}, j: ${j}`);
    if (i === 2 && j === 2) {
      break outerLoop; // outerLoop 반복문을 종료
    }
  }
}

console.log('반복문 종료');

// 출처: chatGPT



☑️ 플래그 변수 사용

let isBreak = false;

for (let i = 0; i < 5; i++) {
  for (let j = 0; j < 5; j++) {
    console.log(`i: ${i}, j: ${j}`);
    if (i === 2 && j === 2) {
      isBreak = true; // 플래그 설정
      break; // 내부 루프 종료
    }
  }
  if (isBreak) break; // 외부 루프 종료
}

console.log('반복문 종료');

// 출처: chatGPT



☑️ 함수 사용

function nestedLoop() {
  for (let i = 0; i < 5; i++) {
    for (let j = 0; j < 5; j++) {
      console.log(`i: ${i}, j: ${j}`);
      if (i === 2 && j === 2) {
        return; // 함수 종료로 반복문 완전히 종료
      }
    }
  }
  console.log('이 메시지는 실행되지 않음'); // 조건 충족 시 실행되지 않음
}

nestedLoop();
console.log('반복문 종료 후 실행');

// 출처: chatGPT

참고 및 출처 :
https://velog.io/@iimandoo/%EC%A4%91%EC%B2%A9%EB%90%9C-for%EB%AC%B8-%ED%95%9C%EB%B2%88%EC%97%90-%EB%82%98%EA%B0%80%EA%B8%B0

중첩된 반복문(for) 빠져나가기

중첩된 for 문 나가려면 break 레이블명 넣습니다.for 문에 레이블을 달아주고,break 에 해당 레이블명을 적어주면 원하는 for문을 빠져나올 수 있습니다.

velog.io


chatGPT