Minwoo Dev.

[Java] switch 문 본문

Java

[Java] switch 문

itisminu 2023. 11. 9. 22:05
728x90
반응형
SMALL

if, else 문을 했으니 이제는 switch 문에 대하여 알아보겠다.

 

switch문도 조건에 맞는 코드를 실행하는 조건문 중 하나이다.

switch (변수) {
            case 값:
                실행 코드;
            case 값2:
                실행 코드;
                .
                .
                .
}

 

기본적인 형식은 위와 같다.

 

변수가 어떤 값이냐에 따라서 실행하는 코드가 달라진다.

변수 == 값2 이면 두 번째 실행코드를 실행하는 방식이다.

 

예제를 통해 살펴보자.

성적으로 장학금을 준다고 할때, 장학금의 내용은 아래와 같다.

  • 1등 : 전액 장학금
  • 2등 : 70% 장학금
  • 3등 : 50% 장학금
  • 4등 : 20% 장학금
  • 그 외 : 장학금 지원 X
int rank = 2;

switch (rank) {
    case 1:
        System.out.println("전액 장학금");
        break;
    case 2:
        System.out.println("70% 장학금");
        break;
    case 3:
        System.out.println("50% 장학금");
        break;
    case 4:
        System.out.println("20% 장학금");
        break;
    default:
        System.out.println("장학금 지원 X");

 

2등의 값이 정상적으로 실행된다.

 

그럼 1,2,3,4 외의 값을 입력하면 어떻게 될까? 

 

 

int rank = 7;

switch (rank) {
    case 1:
        System.out.println("전액 장학금");
        break;
    case 2:
        System.out.println("70% 장학금");
        break;
    case 3:
        System.out.println("50% 장학금");
        break;
    case 4:
        System.out.println("20% 장학금");
        break;
    default:
        System.out.println("장학금 지원 X");

 

 

7등은 1,2,3,4등 어디에도 맞지 않으므로 그 외의 값을 의미하는 defalt를 실행하게 된다.

 

 

 

이러한 switch 문이 if-else문과 다른 점이라면 주로 사용되는 용도가 조금 다르다.

if-else문은 "여러 조건 혹은 범위에 해당하는 경우" 에 주로 쓰이고, switch문은 "명확한 케이스가 있는 경우"에 주로 사용된다.

 

그리고, switch 문의 각 case에 break가 있는 것을 눈치챘을 것이다.

이 break 는 프로그램의 실행을 중단시키는 역할을 한다.

 

그럼 꼭 모든 case문에 필요한 것일까 ?

int rank = 2;

switch (rank) {
    case 1:
        System.out.println("전액 장학금");
    case 2:
        System.out.println("70% 장학금");
    case 3:
        System.out.println("50% 장학금");
    case 4:
        System.out.println("20% 장학금");
    default:
        System.out.println("장학금 지원 X");

 

위와 같이 break가 없는 상태에서 2등의 값을 출력하면 어떻게 될까?

 

70% 장학금이라는 값만 출력되어야 하지만 그 뒤의 문장들도 모두 출력된 것을 확인할 수 있다.

 switch문은 순서대로 위에서 아래로 내려오며 조건을 검사하기 때문에 맞는 조건의 코드를 실행하고 난 후 swith문을 자동으로 빠져나오지 않는다. 

그래서 break로 임의로 switch문에서 빠져나오는 것이다.

 

 

 

 

 

출처 - 나도코딩 자바 강의 https://www.youtube.com/watch?v=NQq0dOoEPUM&t=16440s

728x90
반응형
LIST

'Java' 카테고리의 다른 글

[Java] While문  (0) 2023.11.11
[Java] For 문  (0) 2023.11.11
[Java] else if  (0) 2023.11.07
[Java] else  (0) 2023.11.07
[Java] 조건문 If  (0) 2023.11.05