중첩 For문 탈출 문제
조회수 9659회
소스코드
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 답변
-
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");
이게 실행됩니다.
댓글 입력