โ 1. swtich-case๋ฌธ
1.1 ์ฌ์ฉ๋ฒ
Switch(๋ณ์) {
case ๊ฐ1:
๋ช
๋ น1;
break;
case ๊ฐ2:
๋ช
๋ น2;
break;
default:
๋ช
๋ น;
break;
}
if - else if ๋ฌธ ๋์ swtich-case๋ฌธ์ ์ฐ๋ฉด ๊ฐ case๋ณ ์ฒ๋ฆฌ๋ฅผ ํ ๋์ ์์ ๋ณผ ์ ์์ด์ ๊น๋ํ๋ค๋ ์ฅ์ ์ด ์๋ค.
1.2 ์์
1๋ฑ์ ๊ธ๋ฉ๋ฌ, 2๋ฑ์ ์๋ฉ๋ฌ, 3๋ฑ์ ๋๋ฉ๋ฌ, ๋๋จธ์ง๋ ์ฐธ๊ฐ์์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
int rank = 2;
switch(rank) {
case 1:
System.out.println("๋น์ ์ ๊ธ๋ฉ๋ฌ");
break;
case 2:
System.out.println("๋น์ ์ ์๋ฉ๋ฌ");
break;
case 3:
System.out.println("๋น์ ์ ๋๋ฉ๋ฌ");
break;
default:
System.out.println("๋น์ ์ ์ฐธ๊ฐ์");
break;
}
โ 2. swtich-case๋ฌธ์ ๋ณํฉ์ฒ๋ฆฌ
2-1.๋ณํฉ์ฒ๋ฆฌ๋?
๋ง์ฝ 1๋ฑ์ ๋์์ ๋ฐ๊ณ , 2๋ฑ๊ณผ 3๋ฑ์ ์ต์ฐ์์, 4๋ฑ๊ณผ 5๋ฑ์ ์ฐ์์์ ๋ฐ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์งค ์ ์์๊น? ์ฆ, case2์ case3์์ ์คํํด์ค ๋ช ๋ น์ด ๊ฐ๊ณ , case4์ case5์์๋ ๊ฐ์ ๋ช ๋ น์ ์คํํด ์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋ง์ด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ ๋ ๊ฐ์ ์ผ์ด์ค๋ฅผ ํ๋๋ก ํฉ์ณ ๊ธฐ์ ํ๋ ๊ฒ์ ๋ณํฉ์ฒ๋ฆฌ๋ผ๊ณ ํ๋ค. ๊ตณ์ด ๋๊ฐ์ ๋ช ๋ น์ ๋ ๋ฒ ์ ์ด์ค ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณํฉ์ฒ๋ฆฌ๋ case์ ๋์ break;๊ฐ ์์ผ๋ฉด ๋ค์ case ๋ช ๋ น๊น์ง ๊ณ์ ์คํํ๋ ํน์ฑ์ ํ์ฉํ ๊ฒ์ด๋ค.
2-2. 1๋ฑ์ ๋์, 2,3๋ฑ์ ์ต์ฐ์์, 4,5๋ฑ์ ์ฐ์์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
int rank = 2;
switch(rank) {
case 1:
System.out.println("๋์");
break;
case 2:
case 3:
System.out.println("์ต์ฐ์์");
break;
case 4:
case 5:
System.out.println("์ฐ์์");
break;
}
case2์ case3์ด ๊ฐ์ ๋ break๋ฅผ ์๋ต ํด ์ฃผ๋ฉด ์ฝ๋๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์๋๋ก ํ๋ฌ๊ฐ๋ฉด์ case3์ ์๋ ๋ช ๋ น์ด ์คํ๋๋ค.
์ด๋ฐ ํ์์ fall through(ํด ์ค๋ฃจ)๋ผ๊ณ ํ๋ฉฐ ๋ ๊ฐ์ case๋ฅผ or๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค. case2: case3:์ ๊ฐ์ด case2 or case3 ์ด๋ผ๋ ๋ง๊ณผ ๊ฐ๋ค.
2-3. ๊ฐ ์์ ๋ช ์ผ๊น์ง ์์๊น? - ์๋ณ ๋ ์ง์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ
int days;
int month = 3;
switch(month) {
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
System.out.println(month + "์์ " + days + "์ผ๊น์ง ์์ต๋๋ค.");
3์์ 31์ผ๊น์ง ์์ต๋๋ค.