switch-case문
switch-case문은 if-else if 같은 기능을 하지만 조건의 값이 정수 혹은 문자열이어야 사용할 수 있다는 제약이 있어 if-else if 보다는 한정적으로 사용되는 조건문이다. 하지만 if-else if 문보다 코드를 깔끔하게 정리할 수 있다는 장점이 있어서 가끔 활용되는 조건문이다.
if - else 문과는 다르게 switch -case에는 조건식이 아닌 조건이 되는 변수가 들어가게 되고 중괄호 아래에 변수의 값을 case뒤에 두어 조건을 설정한다. 그리고 마지막에 default는 else와 비슷한 역할을 하여 조건에 맞지 않는 값들의 수행문을 결정 한다.
int rank = scanner.nextInt();
char medalColor;
switch(rank) {
case 1: medalColor = '금';// char은 '' String은 ""
System.out.println("금메달");
break; // 중괄호를 빠져나가라. 안쓰면 금은동메달 다나오고 마지막에 A라고나옴.
case 2: medalColor = '은';
System.out.println("금메달");
break;
case 3: medalColor = '동';
System.out.println("금메달");
break;
default : medalColor = 'A'; // default 값을 안넣어도 되는데 안넣을거면 초기값을 줘야함- medalcolor : 'A'
}
System.out.println(rank + "등은" +medalColor +"메달 입니다."); // 1, 금메달 1등은금메달 입니다.
정수를 입력받아 조건에 맞는 메달을 출력해주는 예제다. 정수의 값이 1~3인경우 해당 case의 수행문을 수행하고 그외의 값이면 default 값을 출력한다.
case 마다 break;를 사용하는 이유는 break;는 switch-case문을 빠져나가라는 뜻으로 if-else if 문은 조건이 만족해서 수행문을 수행하면 자동으로 조건문 밖으로 빠져나가지만 switch-case문은 그렇지 않고 다음 수행문들도 수행하기 때문에 break;로 빠져나가라고 수동으로 안내해 주는 것이다.
default 값은 생략 가능 하며, 생략할 경우 medalColor의 지정된 기본 값을 출력합니다. 만약 medalColor 비어있는 변수라면 에러가 나기 때문에 medalColor에 기본값을 대입하거나 default를 조건을 설정해 주어야 합니다.
switch - case문에 조건에는 문자열이 올 수 있고 위의 예제에서 rank를 medal로 바꾸어 case "Gold": 이런식으로 변경하여 적용할 수도 있다.
실습


'Language > Java' 카테고리의 다른 글
[Java] 논리 연산자 (&&, ||, &, |, ^, !) (0) | 2022.07.20 |
---|---|
[Java] 조건문 2 (0) | 2022.07.19 |
[Java] 삼항 연산자 중첩 사용 (0) | 2022.07.19 |
[Java] 삼항 연산자 (0) | 2022.07.19 |
[Java] 조건문 1 (0) | 2022.07.19 |