자바에서 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 답변
-
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를 만날 경우 여기서부터 실행 } }
댓글 입력