
라벨(Label)이란 반복문이나 블록에 이름을 붙이는 것을 의미한다. 이 이름을 이용해서 break나 continue 문을 특정 반복문에 적용할 수 있다. 라벨을 사용하면 중첩된 여러 반복문에서 원하는 반복문을 정확히 제어할 수 있게 된다. 예를 들면 중첩된 반복문에서 바깥쪽 반복문까지 한 번에 빠져나가고 싶을 때, 라벨을 사용하면 유용하다.
라벨은 반복문 바로 앞에 라벨 이름과 콜론(:) 을 붙여서 정의한다. 그 후, break나 continue 문에서 해당 라벨 이름을 사용하여 특정 반복문을 제어할 수 있다.
실제 사용 예시는 다음과 같다. 다음은 라벨과 break문을 활용하여 작성한 코드이다.
✍️ 작성
public class LabelExam1 {
public static void main(String[] args) {
outter:
for(int i = 0; i < 3; i++) {
for(int k = 0; k < 3; k++) {
if(i == 0 && k == 2)
break outter;
System.out.println(i + ", " + k);
}
}
}
}
가장 바깥쪽 반복문을 outter라는 이름의 라벨로 정의하여 이중반복문을 한번에 빠져나갈 때 활용한 코드이다.
다음은 라벨과 continue문을 활용하여 작성한 코드이다.
✍️ 작성
public class LabelExam2 {
public static void main(String[] args){
outter:
for(int i = 0; i< 3; i++){
for(int k = 0; k < 3; k++){
if( i == 0 && k == 2)
continue outter;
System.out.println(i + ", " + k);
}
}
}
}
마찬가지로 가장 바깥쪽 반복문을 outter라는 이름의 라벨로 정의하여 바깥쪽 for 반복문의 다음 반복문으로 한번에 이동할 때 활용한 코드이다.
라벨(Label) 의 장단점은 다음과 같다.
| 장점 | 단점 |
|---|---|
| 뛰어난 간결성 | 가독성 저하 |
| 뛰어난 직관성 | 코드 유지보수 난이도 증가 |
라벨(Label)은 적재적소에 사용할 경우 코드의 간결성과 직관성이 좋아질 수 있지만 남용할 경우 코드의 가독성이 떨어지고 유지보수가 힘들어질 수 있다. 따라서 라벨(Label)은 필요할 때에만 신중하게 사용해야하며 남용해서는 안된다.
부트캠프 멋쟁이사자처럼 강의자료
Should I avoid using Java Label Statements? - 스택오버플로우 (Stackoverflow)