프로그래밍 언어/JAVA

Java 중첩 for문 벗어나는 방법

Rateye 2021. 12. 8. 10:55
728x90
반응형
질문 : Java에서 중첩 루프를 어떻게 해제합니까?

다음과 같은 중첩 루프 구조가 있습니다.

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

이제 두 루프에서 어떻게 벗어날 수 있습니까? 비슷한 질문을 살펴 보았지만 Java와 관련된 것은 없습니다. 대부분의 고토를 사용했기 때문에 이러한 솔루션을 적용 할 수 없었습니다.

내부 루프를 다른 방법에 넣고 싶지 않습니다.

루프를 다시 실행하고 싶지 않습니다. 깨지면 루프 블록의 실행이 끝납니다.

답변

다른 답변자처럼, 나는 확실히 당신은 그냥 완전히 반복하는 중지 반환 할 수있는 점에서, 다른 방법으로 루프를 넣어 원합니다. 이 답변은 질문의 요구 사항이 어떻게 충족 될 수 있는지 보여줍니다.

외부 루프에 대한 레이블과 함께 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");
    }
}

이것은 다음을 인쇄합니다.

0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
Breaking
Done
출처 : https://stackoverflow.com/questions/886955/how-do-i-break-out-of-nested-loops-in-java
728x90
반응형