1. ๊ฐ๊ด€์‹ ์—ฐ์‚ฐ์ž:switch

Java์—๋Š” ํ• ์•„๋ฒ„์ง€(C++)์—์„œ ๋ฌผ๋ ค๋ฐ›์€ ๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง„์ˆ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค switch. ๋‹ค์ค‘ ์„ ํƒ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋ฒˆ๊ฑฐ๋กœ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.

switch(expression)
{
   case value1: code1;
   case value2: code2;
   case value3: code3;
}

ํ‘œํ˜„์‹ ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๊ด„ํ˜ธ ์•ˆ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ‘œํ˜„์‹์˜ ๊ฐ’์ด ์ด๋ฉด value1Java ์‹œ์Šคํ…œ์ด ์‹คํ–‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค code1. ํ‘œํ˜„์‹์ด ์™€ ๊ฐ™์œผ๋ฉด value2์‹คํ–‰์ด ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค code2. ํ‘œํ˜„์‹์ด ์™€ ๊ฐ™์œผ๋ฉด ์‹คํ–‰ value3๋ฉ๋‹ˆ๋‹ค code3.

์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
int temperature = 38;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
} 
High

2. break์ง„์ˆ switch

๋ช…๋ น๋ฌธ ์˜ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ switch์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹จ์ˆœํžˆ ํ•„์š”ํ•œ ๋ผ์ธ(ํ•„์ˆ˜ ์ฝ”๋“œ ๋ธ”๋ก)์œผ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ switch. ์˜ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก๋ฟ๋งŒ switch์•„๋‹ˆ๋ผ ์˜ ๋๊นŒ์ง€ ๋ชจ๋“  ์ฝ”๋“œ ๋ธ”๋ก์ด switch.

์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
int temperature = 36;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
} 
Low
Normal
High

36์˜ ์˜จ๋„๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ๋ช…๋ น๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  switch์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ ๋ธ”๋ก(์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ)์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์‹คํ–‰ํ•œ ๋‹ค์Œ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ ๋ธ”๋ก์„ ์œ ์พŒํ•˜๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ธ”๋ก (์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ด€๋ จ๋œ ์ฝ”๋“œ ๋ธ”๋ก) ๋งŒ ์‹คํ–‰ํ•˜๋ ค๋ฉด break๋ช…๋ น๋ฌธ์œผ๋กœ ๋ธ”๋ก์„ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
int temperature = 36;

switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
}
Low

ํ•ด๋‹น ๋ธ”๋ก์ด break ๋ฌธ์ด ์žˆ๊ฑฐ๋‚˜ ์—†๋Š” ๋งˆ์ง€๋ง‰ ๋ธ”๋ก์ด๋ฏ€๋กœ ๋ช…๋ น๋ฌธ break์˜ ๋งˆ์ง€๋ง‰ ๊ฒฝ์šฐ์— the๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .switch


3. ๊ธฐ๋ณธ ์กฐ์น˜:default

๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ . switch๊ด„ํ˜ธ ์•ˆ์˜ ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ ํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ์—†์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ ?

์ผ์น˜ํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ์—†์œผ๋ฉด switch๋ช…๋ น๋ฌธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ”„๋กœ๊ทธ๋žจ์€ ๋ช…๋ น๋ฌธ์„ ๋๋‚ด๋Š” ์ค‘๊ด„ํ˜ธ ๋‹ค์Œ์— ์‹คํ–‰์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค switch.

์ฆ‰, switch๋ช…๋ น๋ฌธ์ด ๋ช…๋ น๋ฌธ์˜ else ๋ถ„๊ธฐ์ฒ˜๋Ÿผ ์ž‘๋™ ํ•˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค if-else. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด defaultํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

case๋ธ”๋ก ์˜ s ์ค‘ ์–ด๋Š ๊ฒƒ๋„ switchํ‘œํ˜„์‹์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๊ณ  ์— ๋ธ”๋ก์ด switch์žˆ์œผ๋ฉด default๊ธฐ๋ณธ ๋ธ”๋ก์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ˆ:

์•”ํ˜ธ ์ฝ˜์†” ์ถœ๋ ฅ
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
}
Call an ambulance

4. ๋น„๊ต switch๋ฐif-else

๋ฌธ switch์€ ๋ฌธ๊ณผ ๋‹ค์†Œ ๋น„์Šทํ•˜์ง€๋งŒ if-else๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์˜ ์ฝ”๋“œ๋Š” ํ•ญ์ƒ switch์—ฌ๋Ÿฌ if๋ฌธ์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

์Šค์œ„์น˜๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ if-else๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
} 
int temperature = 40;

if (temperature == 36)
{
   System.out.println("Low");
}
else if (temperature == 37)
{
   System.out.println("Normal");
}
else if (temperature == 38)
{
   System.out.println("High");
}
else
{
   System.out.println("Call an ambulance");
}

์™ผ์ชฝ์˜ ์ฝ”๋“œ๋Š” ์˜ค๋ฅธ์ชฝ์˜ ์ฝ”๋“œ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น๋ฌธ์ด ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์— ๋‹ค์–‘ํ•œ ๋ณตํ•ฉ ํ‘œํ˜„์‹์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋ช…๋ น๋ฌธ ์ฒด์ธ์ด if-else๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค .if



5. ๋ฌธ์žฅ์—๋Š” ์–ด๋–ค ํ‘œํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š” switch?

case๋ชจ๋“  ์œ ํ˜•์„ ๋ช…๋ น๋ฌธ ์˜ ๋ ˆ์ด๋ธ” ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค switch. ๋‹ค์Œ ์œ ํ˜•์˜ ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ •์ˆ˜ ์œ ํ˜•: byte, short, int,long
  • char
  • String
  • ๋ชจ๋“  enum์œ ํ˜•

๋‹ค๋ฅธ ์œ ํ˜•์€ ์ผ€์ด์Šค ๋ ˆ์ด๋ธ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค .

enum๋‚ด๋ถ€ ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ switch:

Day day = Day.MONDAY;
switch (day)
{
   case MONDAY:
      System.out.println("Monday");
      break;
   case TUESDAY:
      System.out.println("Tuesday");
      break;
   case WEDNESDAY:
      System.out.println("Wednesday");
      break;
   case THURSDAY:
      System.out.println("Thursday");
      break;
   case FRIDAY:
      System.out.println("Friday");
      break;
   case SATURDAY:
      System.out.println("Saturday");
      break;
   case SUNDAY:
      System.out.println("Sunday");
      break;
}

enum์ฐธ๊ณ : inside a ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ ˆ์ด๋ธ” switch์˜ ๊ฐ ๊ฐ’ ์•ž์— ํด๋ž˜์Šค ์ด๋ฆ„์„ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค case. ๊ทธ๋ƒฅ ๊ฐ’์„ ์“ฐ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.