switch 문
발행: (2026년 2월 7일 오후 06:44 GMT+9)
2 분 소요
원문: Dev.to
Source: Dev.to
Overview
- switch case는 변수나 식의 값에 따라 서로 다른 코드 블록을 실행할 수 있게 해 주는 제어문입니다.
- 많은
if–else문을 쓰는 것보다 더 깔끔하고 읽기 쉬운 경우가 많습니다. - Java에서는
switch문이 원시 타입int,byte,short,char와, Java 8부터는String과도 사용할 수 있습니다. - Java 12부터는 화살표 구문(
->)을 사용해break대신 더 간결하게 표현할 수 있습니다.
Syntax
switch (expression) {
case value1:
// statements
break; // stops fall‑through
case value2 -> // arrow syntax (Java 12+)
// statements
default:
// default statements
}
- **
break;**는 매치된 case 블록이 실행된 후 흐름을 멈춥니다. - **화살표 구문 (
->)**은 자동으로 fall‑through를 방지하므로 명시적인break가 필요하지 않습니다.
Example 1 – Switching on an int
public class SwitchCaseExample {
public static void main(String[] args) {
int day = 5; // can be int, byte, short, or char
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Holiday");
}
}
}
Example 2 – Switching on a String (Java 8+)
package moduleTwo;
public class SwitchCaseTest {
public static void main(String[] args) {
String say = "hello";
switch (say) {
case "hi":
System.out.println("hey");
break;
case "hello":
System.out.println("Good morning");
break;
default:
System.out.println("unknown");
}
}
}
Example 3 – Multiple Labels and Arrow Syntax (Java 12+)
public class SwitchCaseTest {
public static void main(String[] args) {
String grade = "B";
switch (grade) {
case "A", "B" -> System.out.println("pass");
case "C" -> System.out.println("fail");
default -> System.out.println("no result");
}
}
}