자바(Java) - 조건문 switch

지원·2023년 8월 26일

Java Programming

목록 보기
8/25

switch


  • switch는 제어문(control flow statements) 중에 하나이다. switch문은 경우에 따라 if문보다 가독성이 좋을 수 있다.

  • 이론적으로는 switch문이 if문보다 속도가 빠르다고 하지만 의미가 없는 수준이다.

  • switch 블록 안에는 여러 개의 case가 올 수 있다.

  • switch 블록 안에는 하나의 default가 올 수 있다.

  • break문이 있으면 출력하고 switch문을 나가게 되고, 없으면 밑에 있는 case를 출력한다.

  • break문은 생략 가능하다.

    		switch (변수) {
    			case 값1:
          	변수가 값1일 때 실행된다.
              break;
          case 값2:
          	변수가 값2일 때 실행된다.
              break;
    			...
          default:
          	변수가 값이 어떤 case에도 해당되지 않을 경우 실행된다.
    		}

예제 1

public class SwitchExam {
  public static void main(String[] args) {
    int i = 2;

    switch(i) {
      case 1:
        System.out.println("1입니다.");
      case 2:
        System.out.println("2입니다.");
      case 3:
        System.out.println("3입니다.");
    }
  }
}
  • 실행결과
2입니다.
3입니다.

예제 2

public class SwitchExam {
  public static void main(String[] args) {
    int i = 4;

    switch(i) {
      case 1:
        System.out.println("1입니다.");
        break;
      case 2:
        System.out.println("2입니다.");
        break;
      case 3:
        System.out.println("3입니다.");
        break;
      default:
        System.out.println("1, 2, 3이 아닙니다.");
      }
  }
}
  • 실행결과
1, 2, 3이 아닙니다.

예제 3

  • JDK 7 이상에서만 switch에서 String 타입을 사용할 수 있다.
public class SwitchExam {
  public static void main(String[] args) {
    String str = "감자";

    switch(str) {
      case "감자":
        System.out.println("감자입니다.");
        break;
      case "고구마":
        System.out.println("고구마입니다.");
        break;
      case "오이":
        System.out.println("오이입니다.");
        break;
      default:
        System.out.println("감자, 고구마, 오이가 아닙니다.");
      }
  }
}
  • 실행결과
감자입니다.

JDK 17부터 추가된 switch 문법


https://docs.oracle.com/en/java/javase/17/language/switch-expressions.html

profile
우주 정복자

0개의 댓글