Programming/Java

[Java] 분기문: break문, continue문

Isaac S. Lee 2023. 7. 24. 11:41

분기문을 이용하면 개발자가 코드의 흐름을 원하는 곳으로 이동할 수 있다.

분기문의 종류로는 break, continue, goto가 있으며, goto는 가독성을 떨어트린다는 이유로 JDK 1.5 때 폐기되었다.

분기문은 다른 제어문과 함께 사용하며, 독립적인 사용이 불가능하다는 특징이 있다.

 

💡break문

break는 자신이 속해 있는 제어문을 탈출하는 역할을 한다.

 

Unreachable code 오류

break문을 만나면 하던 일을 멈추고 무조건 탈출을 한다.

오류가 나는 이유는 들어오자마자 break문을 만나 탈출하기 때문에 도달할 수 없는 코드가 되었기 때문이다.

/*
for (int i = 1; i <= 10; i++) {
    break;
    System.out.println(i);
}
*/

for (int i = 1; i <= 10; i++) {

    if (i == 5) {
        break; // 반복문을 탈출한다.
        continue; // 반복문의 처음으로 돌아간다.
    }

    System.out.println(i);
}

그래서 break문은 조건문과 묶어서 사용한다. break문은 if문을 인식하지 않으므로 break문이 if문 안에 있더라도 for문을 탈출할 대상으로 인식한다.

 

빈 리턴문

private static void m() {
    // 빈 리턴문
    return;
}

빈 리턴문은 실제로 값을 돌려주지 않는 void이다.

값을 반환하는 목적이 아니라 메소드를 중단하는 역할을 한다.

break문보다 종료하는 규모가 더 크다.

 

💡continue문

// 학교 담임 선생님 > 학생 상담 > 1번 ~ 30번

for(int i = 1; i<= 30; i++) {

    // 오늘은 15번 학생까지만 상담을 진행한다.
    if (i == 16) {
        break;
    }

    // 결석한 10번, 15번 학생은 건너뛴다.
    if (i == 10 || i == 15) {
        continue;
    }

    System.out.printf("%d번 학생 상담중..\n", i);
}
1번 학생 상담중..
2번 학생 상담중..
3번 학생 상담중..
4번 학생 상담중..
5번 학생 상담중..
6번 학생 상담중..
7번 학생 상담중..
8번 학생 상담중..
9번 학생 상담중..
// 10번 학생 건너뜀 (continue)
11번 학생 상담중..
12번 학생 상담중..
13번 학생 상담중..
14번 학생 상담중..
// 15번 학생 건너뜀 (continue)
// 15번 학생까지 상담 진행 (break)

break문과 continue문의 통제 방식의 차이는 제어문을 나가느냐, 건너뛰느냐의 차이이다.