중첩 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로 완전히 반복문에서 벗어나고 싶은데 어떻게 하죠??

  • 2016년 01월 05일에 작성됨

조회수 767


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");

이게 실행됩니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close