Minwoo Dev.
[Java] switch 문 본문
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
'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 |