/ JAVAJUNGSUK

Ch4-20~24. break문

자바의 정석 기초편

0. 목차



Chapter4. 조건문과 반복문

Ch4 - 20. break문

Ch4 - 21. continue문

Ch4 - 22. break문과 continue문 예제

Ch4 - 23. 이름 붙은 반복문

Ch4 - 24. 이름 붙은 반복문 예제



Ch4 - 20. break문


▶ break문이란?

▷ 자신이 포함된 하나의 반복문을 벗어남


▶ for문과 while문 - break문

▷ while문 break문
while (true) {  // 무한반복 = ture(생략불가)
    if (sum > 100)
        break;
    sum = 101;
}
System.out.println("무한반복 BREAK!");

// console
무한반복 BREAK!
▷ for문 break문
for (;;) {  // 무한반복 = true(생략가능, ;;로 표기가능)
    if (sum > 100)
        break;
    sum = 101;
}
System.out.println("무한반복 BREAK!");

// console
무한반복 BREAK!



Ch4 - 21. continue문


▶ continue문이란?

▷ 자신이 포함된 반복문의 끝으로 이동
▷ 다음 반복으로 넘어감
▷ 전체 반복 중에서 특정 조건 시 반복을 건너 뛸 때 적합
for (int i = 0; i < 10; i++) {

    if (i % 3 == 0) {
        continue;   // if의 조건식이 true일 때, for문 하나 나감
    } 
    System.out.println(i);
}

// console
// 0 % 3 = 0 → 그래서 0도 건너띔
1
2
// 3 → 3의 배수 부분만 건너띔
4
5
// 6
7
8
// 9



Ch4 - 22. break문과 continue문 예제


▶ 메뉴

▷ 메뉴 입력 시, continue문
▷ 종료 시, break문
while (true) {

    System.out.println("{MENU}");
    System.out.println("[121]");
    System.out.println("[131]");
    System.out.println("[180] : OFF");
    System.out.print("menu > ");
    
    Scanner scanner = new Scanner(System.in);
    int menuS = scanner.nextInt();
    
    switch (menuS) {
        
        case 180: {
            System.out.printf("종료\n\n");
            break;
        }
        
        case 121: {
            System.out.printf("하이!에이치아이~\n\n");
            continue;
        }
        
        case 131: {
            System.out.printf("바이!짜이찌엔~\n\n");
            continue;
        }
        
        default: {
            System.out.printf("재입력\n\n");
            continue;
        }
    }
}

// console
{MENU}
[121]
[131]
[180] : OFF
menu > 188
재입력

{MENU}
[121]
[131]
[180] : OFF
menu > 121
하이!에이치아이~

{MENU}
[121]
[131]
[180] : OFF
menu > 131
바이!짜이찌엔~

{MENU}
[121]
[131]
[180] : OFF
menu > 180
종료

{MENU}
[121]
[131]
[180] : OFF
menu > 



Ch4 - 23. 이름 붙은 반복문


▶ 이름 붙은 반복문이란?

▷ break문 : 하나의 반복문을 벗어남
▷ 그런데 중첩 for문 처럼 brea문이 하나 이상의 for문을 벗어나야 한다면?
▷ 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어남


▶ break문과 이름붙은 break문

▷ break문
int i;
		
Loop1 : for (i = 1; i <= 5; i++) {
    
    System.out.printf("여기는 Loop1-for문\n");
    
    for (;;) {
        
        System.out.printf("여기는 Loop1-for문-중첩for문\n");
        System.out.printf("%d번째 탈출시도!\n", i);
        System.out.printf("%d번째 탈출실패ㅠㅠ\n\n", i);

        break;
    }
}
System.out.printf("NONO~\n");
System.out.printf("%d번째 탈출성공!!!", i - 1);

// console
여기는 Loop1-for
여기는 Loop1-for-중첩for
1번째 탈출시도!
1번째 탈출실패ㅠㅠ

여기는 Loop1-for
여기는 Loop1-for-중첩for
2번째 탈출시도!
2번째 탈출실패ㅠㅠ

여기는 Loop1-for
여기는 Loop1-for-중첩for
3번째 탈출시도!
3번째 탈출실패ㅠㅠ

여기는 Loop1-for
여기는 Loop1-for-중첩for
4번째 탈출시도!
4번째 탈출실패ㅠㅠ

여기는 Loop1-for
여기는 Loop1-for-중첩for
5번째 탈출시도!
5번째 탈출실패ㅠㅠ

NONO~
5번째 탈출성공!!!
  • 중첩 for문 {break문}
    → 중첩 for문만 빠져나옴
    → 다시 for문 안에서 반복
    → for문 돌 거 다 돌고 빠져나옴
▷ 이름붙은 break문
int i;
		
Loop1 : for (i = 1; i <= 5; i++) {
    
    System.out.printf("여기는 Loop1-for문\n");
    
    for (;;) {
        
        System.out.printf("여기는 Loop1-for문-중첩for문\n");
        System.out.printf("%d번째 탈출시도!\n", i);

        break Loop1;
    }
}
System.out.printf("%d번째 탈출성공!!!", i);

// console
여기는 Loop1-for
여기는 Loop1-for-중첩for
1번째 탈출시도!
1번째 탈출성공!!!
  • 중첩 for문 {break문 Loop1}
    → 중첩 for문 빠져나옴
    → for문도 한 번에 빠져나옴



Ch4 - 24. 이름 붙은 반복문 예제


▶ 메뉴 - 완전종료 추가

▷ 완전종료 시, while문 전체 빠져나가기
Loop1: 
while (true) {

    System.out.println("{MENU}");
    System.out.println("[121] : hi");
    System.out.println("[131] : bye");
    System.out.println("[180] : 처음처럼");
    System.out.println("[181] : OFF");
    System.out.print("menu > ");
    
    Scanner scanner = new Scanner(System.in);
    int menuS = scanner.nextInt();
    
    switch (menuS) {
        
        case 180: {
            System.out.printf("돌아가기\n\n");
            break;
        }
        
        case 181: {
            System.out.println("OFF");
            break Loop1;
        }
        
        case 121: {
            System.out.printf("하이!에이치아이~\n\n");
            continue;
        }
        
        case 131: {
            System.out.printf("바이!짜이찌엔~\n\n");
            continue;
        }
        
        default: {
            System.out.printf("재입력\n\n");
            continue;
        }
    }
}

// console
{MENU}
[121] : hi
[131] : bye
[180] : 처음처럼
[181] : OFF
menu > 121
하이!에이치아이~

{MENU}
[121] : hi
[131] : bye
[180] : 처음처럼
[181] : OFF
menu > 131
바이!짜이찌엔~

{MENU}
[121] : hi
[131] : bye
[180] : 처음처럼
[181] : OFF
menu > 180
돌아가기

{MENU}
[121] : hi
[131] : bye
[180] : 처음처럼
[181] : OFF
menu > 181
OFF