중첩 For문 탈출 문제

소스코드

    for (Type type : types) {
        for (Type t : types2) {
             if (some condition) {
                 // Do something and break...
                 break; // Breaks out of the inner loop
             }
        }
    }

이런 중첩 for문에서 break로 완전히 반복문에서 벗어나고 싶은데 어떻게 하죠??

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    break에 라벨을 쓰면 간단합니다.

        public class Test {
          public static void main(String[] args) {
            outerloop:
            for (int i=0; i < 5; i++) {
                      for (int j=0; j < 5; j++) {
                                if (i * j > 6) {
                                          System.out.println("Breaking");
                                          break outerloop;
                                }
                         System.out.println(i + " " + j);
                                  }
                      }
            System.out.println("Done");
            }
        }
    

    조건문 전에 outerloop:이라는 라벨을 지정해줘서 break outerloop;를 만났을때 해당 라벨이 시작하는 지점의 반복문을 벗어나게 해줍니다. 위의 코드에서는

        outerloop:
            for (int i=0; i < 5; i++) {
                      for (int j=0; j < 5; j++) {
                                if (i * j > 6) {
                                          System.out.println("Breaking");
                                          break outerloop;
                                }
                        System.out.println(i + " " + j);
                  }        
    

    outerloop가 시작된 이 반복문이 종료되어

        System.out.println("Done");
    

    이게 실행됩니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.