자바에서 break abc; 이건 무슨 문법인가요?

조회수 1635회
class CodeRunner{
    public static void main(String[] args){
        abc:
        for(int i=0; i<10; i++){
            for(int j=i+1;j<20;j++){
                if(i+j==5){
                    System.out.println(i+j);
                    break abc;
                }
            }
        }
    }
}

자바에서 이런 코드를 봤습니다. break뒤에 abc처럼 뭐가 오는건 처음 보는데요. 어떤 경우에 쓰는건가요? 3번째 줄에 abc:를 없애니 undefined label: abc라고 에러 메시지가 나오네요.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    label 이라는 것인데요. label을 사용하게 될 경우 지정된 라벨의 블록을 건너뜁니다.

    일반적으로 중첩 반복문을 사용할 경우 해당 루프를 빠져나오기 위해서 중첩 반복문의 수만큼 break를 해줍니다. 하지만 label 을 사용할 경우 원하는 조건에서 break lableName; 한번만 지정해주면 모든 루프를 한번에 빠져나올 수 있습니다. 아래는 간단한 예시입니다.

    class CodeRunner {
        public static void main(String[] args) {
    
            for (int i = 0; ; i++) {
                for (int j = 0; ; j++) {
                    for (int k = 0; ; k++) {
                        if (k == 3) break;
                    }
                    break;
                }
                break;
            }
    
            breakLabel:
            for (int i = 0; ; i++) {
                for (int j = 0; ; j++) {
                    for (int k = 0; ; k++) {
                        if (k == 3) break breakLabel;
                    }
                }
            }
            //break breakLabel를 만날 경우 여기서부터 실행
    
        }
    }
    

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)