💡오늘의 키워드
⭕️ for문에서 break의 기본사용법

⭕️ for문에서 break의 응용사용법1

⭕️ for문에서 break의 응용사용법2

⭕️ for문에서 break의 고급예제1

 

보통 자바 for문에서 break를 사용하는 일은 거의 없지만,
불필요한 Loop 실행을 방지하고자할땐 꼭 사용해야한다.

 


⭕️ for문에서 break의 기본사용법

// 라벨링 하지않은 for문
public class Main {
    public static void main(String[] args) {

        for (int k = 0; k < 10; k++)
        {
            System.out.println("K FOR Loop k = " + k);

            if(k == 3)
            {
                break;
            }
        }
        
        System.out.println("all FOR Loop escape");
    }
}

[코드설명]

for문은 0~9까지 10번 반복되어 실행되어야 하지만,

0,1,2,3 까지 4회 반복 된 후 중간에 if( k == 3)을 만나 break 가 걸려

반복문을 중단하고 빠져나오게 된다.

 

[실행결과]

K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
all FOR Loop escape

 

 


⭕️ for문에서 break의 응용사용법1

// 라벨링처리한 for문
public class Main {
    public static void main(String[] args) {

        subLoop:
        for(int j = 0; j < 5; j++)
        {
            lastLoop:
            for (int k = 0; k < 10; k++)
            {
                System.out.println("K FOR Loop k = " + k);

                if(k == 3)
                {
                    break lastLoop;
                }
            }
            System.out.println("j FOR Loop j = " + j);
        }
    System.out.println("all FOR Loop escape");
    }
}

[코드설명]

-중첩된(겹쳐있는) for Loop를 사용하는경우, break를 함께 사용해야 할 경우 

각 for Loop에 라벨(label) 이라는 것을 붙혀, 각 for Loop를 구별 할 수 있다.

(예시에선 - subLoop:와 lastLoop:로 사용하였다. )

(라벨이름은 자유롭게 사용 할 수 있지만, for문의 목적을 한번에

알아챌 수 있도록 작성하는게 좋으며, 라벨이름 뒤에 콜론(":")을 붙혀 사용한다.)

 

 

[실행결과]

K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
j FOR Loop j = 0
K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
j FOR Loop j = 1
K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
j FOR Loop j = 2
K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
j FOR Loop j = 3
K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
j FOR Loop j = 4
all FOR Loop escape

 

 

 

⭕️ for문에서 break의 응용사용법2

public class Main {
    public static void main(String[] args) {

        subLoop:
        for(int j = 0; j < 5; j++)
        {
            lastLoop:
            for (int k = 0; k < 10; k++)
            {
                System.out.println("K FOR Loop k = " + k);

                if(k == 3)
                {
                    break subLoop;
                }
            }
            System.out.println("j FOR Loop j = " + j);
        }
    System.out.println("all FOR Loop escape");
    }
}

[코드설명]

lastLoop: 에서 break가 없다면 k가 0~9 까지 반복되어야 하지만, 

k가 3이되었을때, lastLoop: 가 아니라, 부모인 subLoop: 를 break시켜버리면서( j = 0 )

그 즉시, 전체 for Loop가 종료되었다.

for Loop의 라벨(label)은 break 명령어와 함께 사용하여 for Loop를 자유롭게 종료 시킬 수 있다.

 

 

[실행결과]

K FOR Loop k = 0
K FOR Loop k = 1
K FOR Loop k = 2
K FOR Loop k = 3
all FOR Loop escape

 

 

 

 

 

⭕️ for문에서 break의 고급예제1

class BreakWithLabelDemo {
    public static void main(String[] args) {

        int[][] arrayOfInts = {
                { 32, 87, 3, 589 },
                { 12, 1076, 2000, 8 },
                { 622, 127, 77, 955 }
        };
        int searchfor = 12;

        int i;
        int j = 0;
        boolean foundIt = false;

        search:
        for (i = 0; i < arrayOfInts.length; i++) {
            for (j = 0; j < arrayOfInts[i].length;
                 j++) {
                if (arrayOfInts[i][j] == searchfor) {
                    foundIt = true;
                    break search;
                }
            }
        }

        if (foundIt) {
            System.out.println("Found " + searchfor + " at " + i + ", " + j);
        } else {
            System.out.println(searchfor + " not in the array");
        }
    }
}

 

[실행결과]

Found 12 at 1, 0

 

 

+ Recent posts