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 복사하기 (0) | 2024.06.13 |