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에도 해당되지 않을 경우 실행된다.
}
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입니다.
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이 아닙니다.
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("감자, 고구마, 오이가 아닙니다.");
}
}
}
감자입니다.
https://docs.oracle.com/en/java/javase/17/language/switch-expressions.html