섭섭한 개발일지

[Java] 반복문 탈출 break-label 본문

프로그래밍/Java

[Java] 반복문 탈출 break-label

Seop 2022. 12. 7. 17:10

자바에는 반복문이 존재한다.

반복문을 사용을 하다 보면 특정 조건에서 반복문을 그만 돌리기 위해 흔히 break를 사용을 하는데

겹겹이 쌓인 반복문을 탈출하는 경우에는 break를 연달아 사용하는 경우가 있다.

 

간단하게 2중첩 while 봐보자

        int judgment = 1;

        while (true) { // first while

            while (true) { // second while
                judgment++;
                if (judgment == 3) {
                    break;
                }
            }// finish second while
            
                break;
                
        } // finish first while

 

judgment 가 3이 되면 프로그램을 종료하고자 한다.

위 코드를 보면 중첩되어 있는 second while에서 judgment의 값을 1씩 증가시킨다.

judgment가 3이 될 경우 second while은 탈출하게 되고 first while에서도 break를 해야 이 프로그램은 종료가 될 것이다.

 

만약 first while에서 break를 하지 않는다면 이 프로그램은 무한한 루프를 돌며 judgment 값을 계속해서 1씩 증가를 시키게 될 것이다.

 

위 경우처럼 중첩 반복문에서 특정 조건이 되었을 때 탈출을 하려면 break를 여러 개 사용해야 하는 경우가 발생할 수 있다.

이렇게 break를 여러 개 사용하여 프로그램을 끝내야 하는 순간에 break-label 을 사용하면 한 번에 여러 개의 반복문을 탈출할 수 있다.

 

아래의 코드를 봐보자

        int judgment = 1;

        Outter:
        while (true) { // first while

            while (true) { // second while
                judgment++;
                if (judgment == 3) {
                    break Outter;
                }
            }// finish second while
        } // finish first while

 

 

코드의 진행은 동일하다.

다만 first while 위에 Outter: 라는 라벨을 달아주고 if에서 break에 라벨 이름을 추가해줬다.

이렇게 라벨을 달아주면 break를 하였을 때 작성한 라벨 위치까지의 반복문을 탈출하게 된다.

 

라벨은 여러 개를 사용할 수 있으니 필요에 따라 사용하면 반복문 사용이 좀 더 편해지지 않을까 싶다.

 

또한 라벨은 break 뿐만 아니라 continue에서도 사용을 할 수 있다.

사용법은 break와 동일하니 필요에 따라 사용하도록 하자.

 

Comments