본문 바로가기
Java

Switch문

by GGShin 2022. 4. 18.

Switch문은 byte, short, char와 int type에서 사용가능하다.

Switch문의 기본적인 형태는 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static void main(String[] args) {
 
        int switchValue = 100;
        switch(switchValue) {
            case 1:
                System.out.println("Value was 1");
                break;
            case 2:
                System.out.println("Value was 2");
                break;
            default:
                System.out.println("Was not 1 or 2");
                break;
        }
    }
cs

1. 탐색해야 하는 케이스가 다수인 경우

만약에 탐색해야 하는 케이스가 10개, 20개 많은 경우 일일이 작성하기 어렵다면 아래 line#11~12처럼 작성하면 좀 더 편리하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
 
        int switchValue = 4;
        switch(switchValue) {
            case 1:
                System.out.println("Value was 1");
                break;
            case 2:
                System.out.println("Value was 2");
                break;
            case 3case 4case 5:
                System.out.println("Value was " + switchValue);
            default:
                System.out.println("Was not 1 or 2");
                break;
        }
    }
cs

Line#11~12처럼 작성하면 다수의 케이스 비교를 한 줄에 작성할 수 있다.

 

2. Lower case, upper case 상관 없이 비교하고 싶은 경우 (String type only)

대문자인지 소문자인지 신경쓰지 않고 알파벳만 같으면 케이스 통과를 시키고 싶다면,

주어지는 String을 전체 다 소문자 또는 대문자로 변경하고 케이스 비교를 하면 된다.

예. 소문자로: toLowerCase()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        String month = "January";
        switch (month.toLowerCase()) {
            case "january":
                System.out.println("Jan");
                break;
            case "june":
                System.out.println("June");
                break;
            case "october":
                System.out.println("Oct");
                break;
            default:
                System.out.println("No month found");
                break;
        }
cs

이렇게 하면 Stringn month = "January" 가 month.toLowerCase()로 인해 "january"로 변경되어 case를 돌게된다.

대문자로 바꾸는 방법은 toUpperCase() 이다.

 

Tip.

정의한 함수가 return value를 갖는 경우에는 break를 써주지 않아야 한다.

return 역시 break와 유사하게 이후 코드를 동작시키지 않고 빠져나오게 하는 역할을 수행함으로 중복해서 사용할 필요가 없는 것이다.

 

 

 

 

반응형