본문 바로가기

<자바> break 문 - 흐름 제어문

 

 

오늘은 자바에서 사용하는 break문

대해서 알아보겠습니다.

 

 

흐름 제어문이라고도 말하는 break문은

주로 반복문을 제어할 때 사용하게 됩니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * break문
 * 
 * if문과 함께 사용하는 경우가 다반사고,
 * 해당 break문을 만나면 반복문을 탈출하게 된다.
 * 
 */
 
public class BreakEx {
    public static void main(String[] args) {
        
        for(int i=10; i>0; i--) {
            System.out.println("카운트 다운을 시작합니다.\n" + i + "초전");
        }
        System.out.println("Boom!!");
    }
}
cs

 

 

자 위와 같은 코드가 있습니다.

이를 실행하게 되면!?

 

 

 

 

이런 식으로 반복문이 제대로 실행됩니다.

하지만 여기서 break문을 건다면!?

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class BreakEx {
    
    static int i;
    
    public static void main(String[] args) {
        
        for(i=10; i>0; i--) {
            System.out.println("카운트 다운을 시작합니다.\n" + i + "초전");
            if(i==3) {
                System.out.println("\n종료...");
                break;
            }
        }
        if(i==1) {
         System.out.println("Boom!!");
        }
    }
}
cs

 

 

 

 

원래라면 카운트가 1까지 되어야 하지만,

중간에 숫자 3을 만나게 되면

break문이 실행됩니다.

그리고 for문을 탈출하게 되었을 때

카운트가 1일 경우에만 "Boom!!"이라는

문자를 출력하게 설정했습니다.

 

 

그러면 이번에는 이거를 응용해서

간단하게 숫자 맞추기

게임을 만들어보겠습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Scanner;
 
public class NumberQuiz {
 
    private static int count;
 
    public static void pln(String str) {
        System.out.println(str);
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 1부터 50까지 난수 발생
        int r = (int) (Math.random() * 50+ 1;
 
        while (true) {
            count++;
            int user = sc.nextInt();
            if (user > r) {
                pln("Down");
            } else if (user < r) {
                pln("Up");
            } else {
                pln("Clear");
                pln("시도횟수는 : " + count);
                break;
            }
        }
    }
}
 
cs

 

 

위의 코드를 보시면

1부터 50까지의 난수를 발생시키고,

이 발생된 난수를 맞추는

숫자 맞추기 게임입니다.

 

 

내가 입력한 숫자가 난수보다 높으면

"Up"을 출력하고,

내가 입력한 숫자가 난수보다 낮으면

"Down"을 출력하고,

내가 입력한 숫자가 난수와 일치하면

"Clear"시도 횟수를 출력합니다.

 

 

 

 

원래라면 while(true) 문을

탈출하지 못하는데,

break문을 써서 탈출한 게 보입니다.

 

 

이렇게 break문은 반복되는

while문이나 for문에서 해당 반복문을

탈출할 때 주로 사용됩니다.

 

 

추가적으로 Thread에서 break를 사용하는걸

보여드리고 끝내겠습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class ThreadBreak {
    
    public ThreadBreak() {
        Thread t1 = new Thread() {
            public void run() {
                
                System.out.println("카운트를 시작합니다.");
                
                while(true) {
                    for(int i=5; i>0; i--) {
                        try {
                            Thread.sleep(1000);
                            System.out.println("프로그램 종료" + i + "초전");
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    // for문이 끝나는 여기서 braek를 걸지 않으면
                    // 또 다시 10초부터 카운트다운을 시작한다.
                    break;
                }
            }
        };
        t1.start();
    }
    public static void main(String[] args) {
        new ThreadBreak();
    }
}
 
cs

 

 

 

93 DL

Develop Life