카테고리 없음

[Java] 중복 loop 중지하는 방법 (labeled break)

XEV 2022. 12. 24. 10:36

label : for & label : while

중복 loop 를 사용할 때 기본적으로 사용하는 break 는 현재의 curly braces { } 위치만 정지시킨다.

이를 확장하여 중복 loop 의 원하는 구간을 중지하길 원한다면 label 을 붙여 컨트롤할 수 있다.

 

public class Main
{
    public static void main(String[] args) {
    
        label_1 :
        for() {
        
            label_2 :
            for() {
            
                label_3 :
                for() {
                
                    if () {
                        break label_2;
                        
                    }
                }
            }
        }
    }
}

기본적인 사용 형태는 위와 같다.

loop 시작 지점에 특정 (label :) 을 붙여두고 원하는 조건에 대해 break 와 함께 사용한다.

    label : for

        break label;

 

 

 

 

 

for loop 적용

public class Main
{
    public static void main(String[] args) {
	    
        first:
        for(int i = 1; i <= 3; i ++) {
		    
            second:
            for(int j = 1; j <= 3; j ++) {
		        
                third:
                for(int k = 1; k <= 3; k ++) {
		            
                    System.out.println("i = " + i + "; j = " + j + "; k = " + k);
		            
                    if (j == 2) {
                        break second;
		                
                    }
                }
            }
        }
    }
}



// i = 1; j = 1; k = 1
// i = 1; j = 1; k = 2
// i = 1; j = 1; k = 3
// i = 1; j = 2; k = 1
// i = 2; j = 1; k = 1
// i = 2; j = 1; k = 2
// i = 2; j = 1; k = 3
// i = 2; j = 2; k = 1
// i = 3; j = 1; k = 1
// i = 3; j = 1; k = 2
// i = 3; j = 1; k = 3
// i = 3; j = 2; k = 1

if (j == 2) {

    break second;

}

j 가 2 일 때, break second 를 사용하였을 경우.

 

 

 

public class Main
{
    public static void main(String[] args) {
	    
        first:
        for(int i = 1; i <= 3; i ++) {
		    
            second:
            for(int j = 1; j <= 3; j ++) {
		        
                third:
                for(int k = 1; k <= 3; k ++) {
		            
                    System.out.println("i = " + i + "; j = " + j + "; k = " + k);
		            
                    if (j == 2) {
                        break first;
		                
                    }
                }
            }
        }
    }
}



// i = 1; j = 1; k = 1
// i = 1; j = 1; k = 2
// i = 1; j = 1; k = 3
// i = 1; j = 2; k = 1

if (j == 2) {

    break first;

}

j 가 2 일 때, break first 를 사용하였을 경우.

 

 

 

 

 

while loop 적용

public class Main
{
    public static void main(String[] args) {
        int i = 1;
        position_1 : while(i <= 5) {
            int j = 1;
            position_2 : while(j <= 5) {
                System.out.println("i = " + i + "; j = " + j);
                j++;
                if (j == 3) {
                    break position_2;
                }
            }
            i++;
        }
    }
}



// i = 1; j = 1
// i = 1; j = 2
// i = 2; j = 1
// i = 2; j = 2
// i = 3; j = 1
// i = 3; j = 2
// i = 4; j = 1
// i = 4; j = 2
// i = 5; j = 1
// i = 5; j = 2

 

 

 

public class Main
{
    public static void main(String[] args) {
        int i = 1;
        position_1 : while(i <= 5) {
            int j = 1;
            position_2 : while(j <= 5) {
                System.out.println("i = " + i + "; j = " + j);
                j++;
                if (j == 3) {
                    break position_2;
                }
            }
            i++;
        }
    }
}



// i = 1; j = 1
// i = 1; j = 2