중첩 For문 탈출 문제

조회수 4890회

소스코드

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

    이게 실행됩니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

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

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.