🔖 INDEX
switch 문은 자바의 제어문 중 하나로, 변수나 표현식을 여러 가지 값과 비교하고 일치하는 값을 가진 코드 블록을 실행합니다. switch 문은 여러 개의 if-else 문을 사용하는 것보다 훨씬 효율적이며 가독성이 좋습니다.
switch 문의 문법
switch 문의 문법은 다음과 같습니다.
switch (표현식) {
case 값1:
// 표현식이 값1과 일치하는 경우 실행할 코드 블록
break;
case 값2:
// 표현식이 값2와 일치하는 경우 실행할 코드 블록
break;
...
default:
// 모든 경우에 일치하지 않는 경우 실행할 코드 블록
break;
}
switch 문을 사용하는 방법은 다음과 같습니다.
- 괄호 안의 표현식을 평가하고 해당 값을 case 문의 값과 비교합니다.
- 표현식이 case 문의 값 중 하나와 일치하면 해당 case 문에 연결된 코드 블록이 실행됩니다.
- 모든 case 문과 일치하지 않는 경우 default 문에 연결된 코드 블록이 실행됩니다.
- break 문은 switch 문을 종료하고 다음 case 문으로 실행이 넘어가는 것을 방지합니다.
switch 문을 사용하면 여러 개의 if-else 문보다 코드가 더 간결하고 가독성이 높아집니다. switch 문은 다음과 같은 경우에 유용합니다.
- 변수나 표현식이 일치하는 여러 가지 값을 테스트하는 경우
- 변수나 표현식이 다른 값에 따라 다른 작업을 수행해야 하는 경우
- 많은 if-else 문을 사용하는 경우 코드의 가독성을 높이기 위해
switch 문의 예제 코드
다음은 switch 문을 사용한 예제 코드입니다.
int dayOfWeek = 3;
String dayName;
switch (dayOfWeek) {
case 1:
dayName = "월요일";
break;
case 2:
dayName = "화요일";
break;
case 3:
dayName = "수요일";
break;
case 4:
dayName = "목요일";
break;
case 5:
dayName = "금요일";
break;
default:
dayName = "잘못된 요일";
break;
}
System.out.println("오늘은 " + dayName + "입니다.");
이 예제에서는 dayOfWeek라는 변수를 사용하여 요일을 나타냅니다. switch 문을 사용하여 dayOfWeek 변수의 값에 따라 dayName 변수를 초기화합니다. 그런 다음 System.out.println 메서드를 사용하여 dayName의 값을 출력합니다.
위의 코드는 dayOfWeek가 3일 때 "수요일"이라는 값을 출력합니다. 모든 경우에 대해 명확하게 처리되도록 default 문도 포함되어 있습니다.
사용 시 주의 사항
자바 프로그래밍에서 switch 제어문을 사용할 때 주의해야 할 몇 가지 점이 있습니다.
- case 문의 값은 상수이어야 합니다. 즉, 변수나 메서드 호출 등의 표현식은 사용할 수 없습니다.
- 각 case 문 끝에는 반드시 break 문을 사용해야 합니다. 그렇지 않으면 다음 case 문으로 실행이 넘어가게 되어 예기치 않은 결과가 발생할 수 있습니다.
- switch 문의 default 문은 생략할 수 있습니다. 그러나 생략하는 것은 안전하지 않습니다. 만약 모든 case 문과 일치하지 않는 경우 default 문이 없으면 switch 문은 아무런 동작을 하지 않습니다.
switch 문은 fall-through 라는 현상을 가질 수 있습니다. 즉, switch 문에서 break 문이 생략되면 해당 case 문이 실행된 이후에 다음 case 문도 실행될 수 있습니다. 따라서 switch 문을 작성할 때는 각 case 문 끝에 반드시 break 문을 추가해야 하며, 모든 경우에 대해 명확하게 처리되도록 주의해야 합니다.
이러한 사항들을 고려하면서 제어문을 사용하면, 보다 안정적이고 가독성 좋은 코드를 작성할 수 있습니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(7) - 반복문 do-while (0) | 2023.05.01 |
---|---|
초보 자바 프로그래밍(6) - 반복문 while (0) | 2023.05.01 |
초보 자바 프로그래밍(4) - 조건문 else / else if (0) | 2023.05.01 |
초보 자바 프로그래밍(3) - 조건문 if (0) | 2023.05.01 |
초보 자바 프로그래밍(2) - 조건문과 반복문 개요 (0) | 2023.05.01 |
댓글