Java

Labelled Loop ( 이름을 가지는 반복문 )

sejin2 2024. 6. 3. 15:22

반복문에 이름(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));
            }
        }
    }
}

 

코드 설명

  1. 이름(label) 지정: allLoop:라는 이름(label)을 가장 바깥쪽 for 반복문 앞에 지정한다. 이 이름은 특정 조건에서 이 반복문을 빠져나가기 위해 사용됩니다.
  2. 외부 반복문: for (int i = 2; i < 10; i++)는 i의 값을 2부터 9까지 증가시키며 반복한다.
  3. 내부 반복문: for (int j = 2; j < 10; j++)는 j의 값을 2부터 9까지 증가시키며 반복한다.
  4. 조건문: if (i == 5) 조건이 참이면, break allLoop 문이 실행되고, 이 문은 allLoop 이름(label)이 붙은 가장 바깥쪽 반복문을 빠져나간다.
  5. 출력문: 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