반복문에 이름(label)을 설정하고 이를 사용하여 특정 반복문을 빠져나가는 방법은 Java에서 중첩되 반복문을 효율적으로 관리할 때 매우 유용하다. 이 기능을 이용하면 여러 반복문이 중첩된 상황에서 일반적인 break문은 단 하나의 반복문만을 빠져나가게 해주므로, 단순한 break문으로는 해결할 수 없는 복잡한 제어 흐름을 간단하게 처리할 수 있다.
기본 개념
- Labelled Loop는 반복문 앞에 이름을 붙여서 특정 반복문을 식별할 수 있게 한다.
- break 문이나 continue문과 함께 사용하여 특정 반복문을 제어할 수 있다.
구문
- 이름은 반복문의 키워드 바로 앞에 위치해야 한다.
- 이름과 반복문의 키워드 사이에 다른 명령문이 들어가면 컴파일 오류가 발생한다.
예시
public class LabelledBreakExample {
public static void main(String[] args) {
allLoop: // 이름(label) 지정
for (int i = 2; i < 10; i++) {
for (int j = 2; j < 10; j++) {
if (i == 5) {
break allLoop; // allLoop 반복문을 빠져나감
}
System.out.println(i + " * " + j + " = " + (i * j));
}
}
}
}
코드 설명
- 이름(label) 지정: allLoop:라는 이름(label)을 가장 바깥쪽 for 반복문 앞에 지정한다. 이 이름은 특정 조건에서 이 반복문을 빠져나가기 위해 사용됩니다.
- 외부 반복문: for (int i = 2; i < 10; i++)는 i의 값을 2부터 9까지 증가시키며 반복한다.
- 내부 반복문: for (int j = 2; j < 10; j++)는 j의 값을 2부터 9까지 증가시키며 반복한다.
- 조건문: if (i == 5) 조건이 참이면, break allLoop 문이 실행되고, 이 문은 allLoop 이름(label)이 붙은 가장 바깥쪽 반복문을 빠져나간다.
- 출력문: System.out.println(i + " * " + j + " = " + (i * j))는 i와 j의 곱셈 결과를 출력한다.
실행 흐름
- i가 2부터 4까지일 때는 내부 반복문이 정상적으로 실행된다.
- i가 5가 되면, if (i == 5) 조건이 참이 되어 break allLoop 문이 실행된다.
- break allLoop 문은 allLoop 이름(label)이 붙은 가장 바깥쪽 반복문을 즉시 종료하도록 한다.
- 따라서 i가 5가 되는 순간 두 개의 for 반복문 모두 종료되고, 프로그램의 실행은 반복문 블록 밖으로 이동한다.
'Java' 카테고리의 다른 글
[인프런] String 클래스 (1) | 2024.06.08 |
---|---|
[인프런] 기본형과 참조형의 공유 (0) | 2024.06.06 |
Enhanced for문 (0) | 2024.06.03 |
[인프런] equals( ) (0) | 2024.06.02 |
[인프런] toString( ) (0) | 2024.06.02 |