본문 바로가기

언어/Java

[ 자바 / Java ] 조건문 switch 문

반응형

 

 

Java의 switch 문은 여러 조건 중 하나를 선택하여 해당하는 코드 블록을 실행할 수 있게 하는 제어 구조입니다. 이는 if-else if-else 문을 대체할 수 있는 깔끔하고 읽기 쉬운 방법을 제공합니다. 특히, 동일한 변수에 대해 여러 가지 값을 비교할 때 유용합니다.

1. switch 문 기본 구조

switch 문은 다음과 같은 구조를 가집니다:

switch (expression) {
    case value1:
        // value1과 expression이 일치할 때 실행되는 코드 블록
        break;
    case value2:
        // value2와 expression이 일치할 때 실행되는 코드 블록
        break;
    // 추가적인 case 블록들...
    default:
        // 어떤 case에도 해당하지 않을 때 실행되는 코드 블록
}

2. switch 문 사용 예제

다음은 기본적인 switch 문 예제입니다.

public class SwitchExample {
    public static void main(String[] args) {
        int day = 3;

        switch (day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Invalid day");
                break;
        }
    }
}

설명:

  • day 변수가 3으로 초기화됩니다.
  • switch 문은 day 변수를 검사하고, case 3이 일치하므로 "Wednesday"를 출력합니다.
  • break 문은 switch 블록을 빠져나가도록 합니다. 만약 break 문이 없으면, 다음 case 블록들도 계속 실행됩니다(이것을 "fall-through"라고 합니다).

3. switch 문에서 break의 중요성

break 문은 switch 문에서 필수는 아니지만, 코드가 원하는 방식으로 동작하도록 하는 데 매우 중요합니다. break 문이 없으면, switch 문은 일치하는 case 블록을 실행한 후 다음 case 블록을 계속해서 실행합니다.

예제를 통해 이를 이해해 보겠습니다:

public class SwitchWithoutBreakExample {
    public static void main(String[] args) {
        int day = 3;

        switch (day) {
            case 1:
                System.out.println("Monday");
            case 2:
                System.out.println("Tuesday");
            case 3:
                System.out.println("Wednesday");
            case 4:
                System.out.println("Thursday");
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Invalid day");
        }
    }
}

설명:

  • day 변수가 3으로 설정되어 있으므로 case 3이 실행됩니다.
  • break 문이 없기 때문에, "Wednesday"를 출력한 후 "Thursday"와 "Friday"도 연속적으로 출력됩니다.
  • "Friday"에서 break 문을 만나 switch 문이 종료됩니다.

4. switch 문에서 default 케이스

default 케이스는 switch 문에서 어떠한 case에도 해당하지 않을 때 실행됩니다. 이 부분은 선택 사항이지만, 일반적으로 모든 경우를 포괄하기 위해 사용하는 것이 좋습니다.

public class SwitchWithDefaultExample {
    public static void main(String[] args) {
        int day = 10;

        switch (day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Invalid day");
                break;
        }
    }
}

설명:

  • day 변수가 10으로 설정되어 있으므로, 어떤 case에도 해당하지 않습니다.
  • 따라서 default 블록이 실행되고 "Invalid day"가 출력됩니다.

5. 문자열을 사용한 switch

Java 7부터는 switch 문에서 문자열(String)을 사용할 수 있습니다.

public class StringSwitchExample {
    public static void main(String[] args) {
        String fruit = "Apple";

        switch (fruit) {
            case "Apple":
                System.out.println("It's an apple.");
                break;
            case "Banana":
                System.out.println("It's a banana.");
                break;
            case "Orange":
                System.out.println("It's an orange.");
                break;
            default:
                System.out.println("Unknown fruit.");
                break;
        }
    }
}

설명:

  • fruit 변수가 "Apple"로 설정되어 있으므로, case "Apple"이 실행되고 "It's an apple."이 출력됩니다.

6. switch 문에서 열거형(enum) 사용

Java에서 enum을 사용하면 상수 값을 관리하기 쉽고, switch 문에서도 사용할 수 있습니다.

public class EnumSwitchExample {
    public enum Day {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }

    public static void main(String[] args) {
        Day day = Day.WEDNESDAY;

        switch (day) {
            case MONDAY:
                System.out.println("Monday");
                break;
            case TUESDAY:
                System.out.println("Tuesday");
                break;
            case WEDNESDAY:
                System.out.println("Wednesday");
                break;
            case THURSDAY:
                System.out.println("Thursday");
                break;
            case FRIDAY:
                System.out.println("Friday");
                break;
            case SATURDAY:
                System.out.println("Saturday");
                break;
            case SUNDAY:
                System.out.println("Sunday");
                break;
        }
    }
}

설명:

  • Day라는 enum을 정의합니다.
  • day 변수가 Day.WEDNESDAY로 설정되어 있으므로, case WEDNESDAY가 실행되고 "Wednesday"가 출력됩니다.

7. 결론

Java의 switch 문은 여러 경우의 수를 처리할 때 유용한 제어 구조입니다. if-else 문보다 읽기 쉽고 명확한 코드 작성을 가능하게 해줍니다. 다양한 데이터 타입(int, char, String, enum)을 처리할 수 있으며, break 문을 사용하여 각 조건에서의 실행을 제어합니다. default 케이스는 모든 경우를 포괄하여 에러를 방지하는 데 유용합니다.

반응형

'언어 > Java' 카테고리의 다른 글

[ 자바 / Java ] 반복문 while  (1) 2024.06.17
[ 자바 / Java ] 반복문 for  (1) 2024.06.17
[ 자바 / Java ] 조건문 if  (1) 2024.06.17
[ 자바 /Java ] ClassPath 설정하기  (0) 2024.06.15
[ 자바 / Java ] List 사용하기  (1) 2024.06.13