Switch
Switch 문은 다중 분기 로직을 간결하게 처리할 수 있는 구문으로, 특정 변수의 값에 따라 여러 가지 경우를 처리할 때 유용합니다.
함께 살펴보도록 하겠습니다.
1. Switch문 이란?
Switch 문은 프로그램이 특정 변수의 값을 검사하여 여러 개의 분기로직을 처리하는 조건문입니다.
일반적으로 if-else문과 비교되며, 특정 변수의 값에 따라 실행할 코드 블록을 선택하는 역할을 합니다.
각각의 경우(case)에 대해 실행할 코드 블록을 정의하고, 변수의 값과 일치하는 경우 해당 코드 블록이 실행됩니다.
2. Switch문의 기본 문법
Switch 문의 기본 구문은 다음과 같습니다:
switch (변수) {
case 값1:
// 값1에 해당하는 코드 블록
break;
case 값2:
// 값2에 해당하는 코드 블록
break;
...
default:
// 어떤 경우에도 해당하지 않을 때 실행될 코드 블록
break;
}
위의 구문에서 주목할 점은 다음과 같습니다.
- 변수
- Switch 문에서 비교할 변수를 지정합니다.
- case 값
- 변수의 값과 일치하는 경우 해당 코드 블록이 실행됩니다. 여러 개의 case를 사용할 수 있으며, 각 case는 고유한 값으로 정의되어야 합니다.
- default
- 어떤 case에도 해당하지 않을 때 실행될 코드 블록입니다. 선택사항이며, default를 생략할 수도 있습니다.
Switch 문은 변수의 값과 case의 값이 일치하는 경우 해당 case부터 break 문을 만나기 전까지의 코드 블록이 실행됩니다.
break 문을 만나면 switch 문을 종료하고 다음 문장으로 이동합니다.
break 문을 생략하면 해당 case에서 다음 case로 계속 실행이 이어집니다.
3. 예시 코드
이제 몇 가지 예시 코드를 통해 Switch 문의 사용법을 살펴보겠습니다.
int day = 3;
String dayOfWeek;
switch (day) { // day = 3
case 1:
dayOfWeek = "월요일";
break;
case 2:
dayOfWeek = "화요일";
break;
case 3: // case 3에 들어옵니다.
dayOfWeek = "수요일";
break;
case 4:
dayOfWeek = "목요일";
break;
case 5:
dayOfWeek = "금요일";
break;
default:
dayOfWeek = "주말";
break;
}
System.out.println("오늘은 " + dayOfWeek + "입니다.");
// 오늘은 수요일입니다.
위의 코드는 변수 `day`의 값에 따라 `dayOfWeek` 변수를 설정하는 예시입니다.
`day`가 3일 경우, 해당하는 case 3의 코드 블록이 실행되어 `dayOfWeek`에는 "수요일"이 저장됩니다.
이후 출력문에서 해당 값을 사용하여 "오늘은 수요일입니다."를 출력합니다.
4. Switch 문의 장점
- 다중 분기 로직을 보다 간결하게 작성할 수 있습니다.
- 가독성이 좋아집니다. 변수의 값과 일치하는 경우의 코드 블록을 명확하게 확인할 수 있습니다.
- 컴파일러가 Switch 문을 최적화하여 실행 속도를 향상시킬 수 있습니다.
5. 주의 사항
- Switch 문은 특정 변수의 값을 비교하기 위한 구문으로 사용되며, 다른 조건(비교 연산, 논리 연산 등)을 사용할 수 없습니다.
- 자바 7부터는 Switch 문에서 문자열(String)을 사용할 수 있습니다.
- case 문에서 break 문을 잊지 않도록 주의해야 합니다. break 문을 생략하면 원하지 않는 동작을 초래할 수 있습니다.
Switch 문은 다중 분기 로직을 간결하고 가독성 있게 작성할 수 있는 강력한 조건문입니다.
변수의 값에 따라 실행할 코드 블록을 선택하는 데 유용하며,
적절히 활용하면 코드 작성의 편의성과 가독성을 향상시킬 수 있습니다.
Switch에서 Enum 사용하기
Enum은 서로 관련된 상수들을 정의하고 사용하는 자료형이며, Switch 문과 함께 사용하면 강력한 조합을 이루어 다양한 상수 처리를 할 수 있습니다.
함께 살펴보도록 하겠습니다.
1. Enum 이란?
Enum은 열거형(Enumeration)의 줄임말로, 일련의 관련된 상수들을 정의하고 사용할 수 있는 자료형입니다.
Enum은 자바 5부터 도입되었으며, 상수 값들의 집합을 표현할 때 유용하게 활용됩니다.
Enum은 일반적으로 고정된 상수 값들을 표현할 때 사용되며, 각 상수는 고유한 이름과 값을 가지고 있습니다.
2. Enum과 함께 사용하는 Switch 문
Switch 문과 Enum을 함께 사용하면 Enum의 각 상수에 따라 다른 동작을 수행할 수 있습니다.
Enum의 상수를 Switch 문의 조건으로 사용하면, 해당 상수에 대한 처리를 Switch 문 내에서 구현할 수 있습니다.
이를 통해 다양한 상수 처리 로직을 간결하게 작성할 수 있습니다.
3. Enum과 Switch 문 사용 예시
다음은 Enum과 Switch 문을 함께 사용하는 예시 코드입니다.
enum Direction { // Enum 생성
NORTH,
SOUTH,
EAST,
WEST
}
public class Main {
public static void main(String[] args) {
Direction direction = Direction.EAST;
switch (direction) { // direction = EAST
case NORTH:
System.out.println("북쪽");
break;
case SOUTH:
System.out.println("남쪽");
break;
case EAST: // 여기로 들어옵니다.
System.out.println("동쪽");
break;
case WEST:
System.out.println("서쪽");
break;
default:
System.out.println("올바르지 않은 방향입니다.");
break;
}
}
}
// 동쪽
위의 코드에서는 `Direction`이라는 `Enum`을 정의하고, `direction` 변수를 선언하여 값을 할당합니다.
Switch 문을 사용하여 `direction` 변수의 값에 따라 각각의 경우(case)에 해당하는 코드 블록이 실행됩니다.
예시 코드의 경우 `direction` 값이 `EAST`인 경우 "동쪽"라는 메시지가 출력됩니다.
4. Enum의 장점.
- Enum을 사용하면 관련된 상수들을 그룹화하여 정의할 수 있습니다.
- 코드의 가독성이 좋아지며, 오타나 잘못된 값을 사용하는 실수를 방지할 수 있습니다.
- Enum의 상수를 Switch 문과 함께 사용하여 다양한 상수 처리 로직을 구현할 수 있습니다.
5. 주의 사항
- Enum의 상수를 비교할 때는 `==` 연산자를 사용해야 합니다. Enum 상수는 객체로 취급되므로 `equals()` 메서드를 사용하면 예상과 다른 결과를 얻을 수 있습니다.
- Enum의 상수는 대문자로 작성하는 것이 관례입니다.
- Switch 문에서 Enum을 사용할 때, 모든 Enum 상수에 대한 처리를 명시적으로 작성하는 것이 좋습니다.
Enum은 관련된 상수들을 정의하고 사용하기 위한 강력한 도구이며,
Switch 문과 함께 사용하면 다양한 상수 처리 로직을 간결하게 작성할 수 있습니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
'Java' 카테고리의 다른 글
Java - 10. 자바의 메서드(method) (0) | 2023.07.12 |
---|---|
Java - 9. 자바 배열(Array) 이해하기. (0) | 2023.07.11 |
Java - 7. 자바의 for문, 향상된 for문 반복문 (0) | 2023.07.09 |
Java - 6. 자바 랜덤함수(Random) 난수 생성 (0) | 2023.07.08 |
Java - 5. 자바 if 조건문(Conditional Statement, if, else if, else) (0) | 2023.07.07 |