[Java] 3.2 선택문

3.2 선택문

Java 언어에서는 특정 데이터의 값에 따라 수행할 구문을 선택하는 문법을 제공합니다. 이와 같은 문법을 일반적으로 선택문이라 부르며 switch case 문이라고도 부릅니다.

switch(데이터){

[case 상수:] [수행 statment;] [break;]

[case 상수:] [수행 statment;] [break;]

[default:] [수행 statment;] [break;]

}

Java 언어에서 switch case 문은 switch 뒤의 괄호 내부에 데이터를 표현하고 그 값의 종류에 따라 case 상수 레이블(코드 내부에 콜론이 붙은 것)을 지정하여 수행할 위치를 정할 수 있습니다. 그리고 case 상수 레이블에 표현하지 않은 값일 때는 default 레이블 위치의 구문을 수행합니다.

[소스 3.4] switch case 사용 예제

private static void exSwitchCase() {
    int num = 0;

    System.out.println("정수를 입력하세요.");
    num = scanner.nextInt();

    switch(num){
    case 1: System.out.println("One");break;
    case 2: System.out.println("Two");break;
    case 3: System.out.println("Three");break;
    default: System.out.println("Other");break;
    }
}

1 입력 결과

정수를 입력하세요.
1
One

2 입력 결과

정수를 입력하세요.
2
Two

4 입력 결과

정수를 입력하세요.
4
Other

선택문으로 작성할 구문은 조건문을 이용해서 작성할 수 있습니다. 하지만 선택할 경우의 수가 많을 때는 조건문보다 효과적입니다.

[소스 3.4] switch 선택문 대신 if else를 사용한 예

private static void exIfVSSwitch() {
    int num = 0;
    System.out.println("정수를 입력하세요.");
    num = scanner.nextInt();
    if(num==0) {
        System.out.println("One");
    }
    else if(num==1){
        System.out.println("Two");
    }
    else if(num==2){
        System.out.println("Three");
    }
    else{
        System.out.println("Other");
    }
}

선택문을 사용할 때 주의할 점은 시작할 위치를 결정하는 것이라 데이터 값에 따라 수행할 구문이 다를 때 수행 구문 뒤에 break; 문을 표시하여 switch case 문을 마칠 수 있게 해야 합니다.

[소스 3.5] break 문을 생략했을 때

private static void exSwitchCase2() {
    int num = 0;
    System.out.println("정수를 입력하세요.");
    num = scanner.nextInt();

    switch(num){
    case 1: System.out.println("One");
    case 2: System.out.println("Two");
    case 3: System.out.println("Three");
    default: System.out.println("Other");
    }
}

2 입력 결과

정수를 입력하세요.
2
Two
Three
Other