[Java] 3.3.4 break 문

3.3.4 break 문

반복문으로 로직을 작성하다보면 반복 수행할 구문을 수행 중에 특정 조건일 때 반복문을 탈출할 필요가 생깁니다. 이 때 break문을 사용하면 반복문을 탈출할 수 있습니다.

주의할 점은 선택문에서도 break문을 사용하고 있다는 점입니다. 예를 들어 반복문 내부에 if문이 있고 if문 내부에 break문이 있으면 반복문을 탈출합니다. 반면 반복문 내부에 선택문이 있고 선택문 내부에 break문이 있으면 선택문만 탈출합니다.

do while 문을 설명하면서 사용한 예제 코드를 보면 반복문 내부에 선택문이 있고 선택문 내부에 break문이 있는 구조를 살펴볼 수 있습니다. 여기서는 break문은 선택문을 탈출하는 용도로 사용한 것입니다.

여기서는 반복문 내부에 if문이 있고 if문 내부에 break문이 있는 간단한 예를 작성하여 살펴봅시다.

예로 사용할 시나리오는 다음과 같습니다. 사용자가 입력한 양의 정수의 합계를 구하는 문제입니다. 만약 입력한 정수가 음수이면 더 이상 입력받지 않고 현재까지 입력받은 양의 정수의 합계를 출력합니다. 그렇지 않다면 입력한 양의 정수를 합산하고 계속 진행할 것인지 여부를 묻습니다. 그리고 계속 진행하겠다고 입력하면 다시 반복합니다.

이의 알고리즘을 간략하게 표현하면 다음과 같이 나타낼 수 있을 것입니다.

 sum을 0으로 초기화

반복(check가 참이면)

정수를 입력받아 num에 대입

조건(입력한 정수가 음의 정수이면)

반복문 탈출

    sum에 sum+num을 대입

    check = 계속 입력할 것인지 여부

 sum 출력

위의 알고리즘의 반복문 내부의 ‘입력한 정수가 음의 정수이면’이라는 조건에서 반복문을 탈출하려면 break문을 사용하는 것입니다.

[소스 3.10] 음수를 입력하기 전까지 입력한 양의 정수 합계 구하기

private static void exLoopIfBreak() {
    boolean check = true;
    int sum = 0;
    int num = 0; 
    String s;
    System.out.println("입력한 양의 정수의 합을 계산합니다. 음수를 입력하면 끝남");
    while(check){
        System.out.println("정수 입력");
        num = scanner.nextInt();
        if(num < 0){
            System.out.println("음수를 입력하였군요. 작업을 완료할게요.");
            break;
        }
        sum += num;
        System.out.println("계속 입력(Y)");
        s = scanner.next();
        check = s.equals("Y");
    }
    System.out.println("입력한 양의 정수의 총 합은 "+ sum); 
}

실행 결과

입력한 양의 정수의 합을 계산합니다. 음수를 입력하면 끝남
정수 입력
3
계속 입력(Y)
Y
정수 입력
-2
음수를 입력하였군요. 작업을 완료할게요.
입력한 양의 정수의 총 합은 3