์ค๋์ ์ ์ด๋ฌธ ์ค์ Switch-case ๋ฌธ์ ๋ํด์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด์ ์๊ฐ์ IF๋ฌธ์ ์กฐ๊ฑด์์ ์ํด์ ์ฐธ or ๊ฑฐ์ง์ผ๋ก ๋ ์ค ํ๋๋ฅผ ์ ํํ๋ ์ ์ด๋ฌธ์ด๋ผ๋ฉด ์ด๋ฒ์๊ฐ์ ๋ฐฐ์ฐ๋ Switch-case๋ฌธ์ ๋ ์ด์์ case ์ค์ ํ๋๋ฅผ ์ ํํ๋ ์ ์ด๋ฌธ์ ๋๋ค. ์ฝ๊ฒ ๋งํด์, ์ฌ๋ฌ๊ฐ ์ค์ ํ๋๋ฅผ ์ ํํ๋ ์ ์ด๋ฌธ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. IF๋ฌธ์ ๋๊ฐ๋ก ๊ณ ์ ๋์ด ์๋ค๋ฉด Switch-case์ ์ฌ๋ฌ๊ฐ์ ์ ํ๋ฌธ์ผ๋ก ๊ฐ๋ ์ ์ก์ ์ฃผ์ธ์. ์ด์ Switch-case ๋ฌธ์ ์ด๋ป๊ฒ ๋ค๋ฃจ๋์ง ์์ธํ ์์๋ณด๋๋ก ํฉ์๋ค.
Switch๋ฌธ์ ์ด๋ค ๊ฐ์ด ์ ๋ ฅ์ด ๋๋ฉด ๊ฐ case ๊ฐ๋ค ์ค ์ผ์นํ๋ case์ ๋ช ๋ น๋ฌธ์ ์ํํ๋ ์ ์ด๋ฌธ์ ๋๋ค. ์ ๋ ฅ๊ฐ์ด case 1๊ณผ ์ผ์นํ๋ฉด True๋ก ๋ค์ ๋ช ๋ น๋ฌธ 1์ ์ํํ์ง๋ง ์ผ์นํ์ง ์์ผ๋ฉด ๋ค์ case 2์ ๋น๊ตํ๊ณ ์ผ์นํ๋ฉด ๋ช ๋ น๋ฌธ 2๋ฅผ ์ํํ๊ณ ์ผ์นํ์ง ์์ผ๋ฉด ๋ค์ case๋ฌธ์ ๋น๊ตํ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์, ๋ชจ๋ case ๊ฐ๋ค์ด ์ผ์นํ์ง ์์ผ๋ฉด default๊ฐ ์ํ ๋ฉ๋๋ค. ํ๋ง๋๋ก ์ฌ๋ฌ๊ฐ์ case ์ค์์ ์ผ์นํ๋ฉด ํด๋น case ๋ผ์ธ์ ๋ช ๋ น์ ์ํํ๊ณ ์ผ์นํ๋ case๊ฐ ์๋ค๋ฉด default์ ๋ช ๋ น๋ฌธ์ ์ํํ๋ค๊ณ ์๊ฐํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ ๋ ฅ๊ฐ์ด case 2๋ ์ผ์นํ๋ฉด ๋ช ๋ น๋ฌธ 2๋ฅผ ์ํํ๊ณ ๋ค์ break ๋ช ๋ น์ผ๋ก Switch๋ฌธ์ ๋น ์ ธ ๋์ค๋๋ฐ ์ด break ๋จ์ด๋ฅผ ๋ง๋๋ฉด ๋์ด์ ์งํํ์ง ๋ง๊ณ ํด๋น Swtich๋ฌธ์ ๋น ์ ธ๋์ค๋ผ๋ ๋ช ๋ น์ด๋๊น ๊ผญ ๊ธฐ์ตํด ์ฃผ์ธ์. ๋ง์ฝ์ break๋ผ๋ ๋ช ๋ น๋ฌธ์ด ์๋ค๋ฉด ์ด๋ค ํ์์ด ๋ฐ์ํ ๊น์.
case 1 : ๋ช
๋ น๋ฌธ 1;
case 2 : ๋ช
๋ น๋ฌธ 2;
case 3 : ๋ช
๋ น๋ฌธ 3;
default : ๋ถ๋ง์กฑ๋ช
๋ น๋ฌธ;
์ด๋ ๊ฒ ์ฝ๋ฉ๋์ด ์์ผ๋ฉด break๊ฐ ์๋ตํ ๊ฒฝ์ฐ ์ ๋ ฅ๊ฐ์ด 2๋ก case 2๋ ์ผ์นํ์ฌ ๋ช ๋ น๋ฌธ 2์ ์ํํ๊ณ ๋ค์ ๋ผ์ธ์ธ ๋ช ๋ น๋ฌธ 3๊ณผ ๋ถ๋ง์กฑ๋ช ๋ น๋ฌธ๊น์ง ์ ๋ถ ์ํํ๊ฒ ๋ฉ๋๋ค. ์ด ๋ง์ ์ฒ์ case ์ง์ ์ ์ผ์นํ ์์น์์ ์ง์ ์ด ์ด๋ฃจ์ด์ง๊ณ ์ํ๋ช ๋ น์ ์ผ์นํ ๋ผ์ธ์ ๊ธฐ์ค์ผ๋ก ์์ฐจ์ ์ผ๋ก ๋ค์ ๋ผ์ธ์ ๋ช ๋ น๋ฌธ์ ์ํํ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. case 2์ ๋ช ๋ น๋ฌธ๋ง ์ํํ ๋ ค๋ฉด ํด๋น ๋ช ๋ น๋ฌธ 2๋ฅผ ์ํํ ๋ค์ break ๋ช ๋ น์ผ๋ก ๋์ด์ ์งํํ์ง ๋ง๊ณ ํด๋น Switch๋ฌธ์์ ๋น ์ ธ๋์ค๋ผ๋ ๊ฐ์ ๋ช ๋ น์ผ๋ก ์ดํดํด ์ฃผ์ธ์.
์! break ๋ช ๋ น์ ์ฐ๋์ง ์ดํด ํ์ จ์ฃ .
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ์ ๋ ฅ๊ฐ ch๋ณ์์ด๊ณ ch์ ์ ์ฅ๋ ๊ฐ์ด case๋ ์ผ์นํ๋ ๋ผ์ธ์ ๋ช ๋ น๋ฌธ์ ์ํํฉ๋๋ค.
[ ๋์ ]
๋์ถฉ ์ด๋ป๊ฒ ๋์ํ์๋์ง ์์๊ฒ ์ง์. ์ค์ ์ฝ๋ฉ์ ํด๋ณผ๊น์.
[ ์์ค ]
void setup()
{
Serial.begin(9600);
char ch = 'y';
switch(ch){
case 'y':
Serial.println("Input : Y");
break;
case 'n':
Serial.println("Input : N");
break;
default:
Serial.println("error");
}
}
์๋ฆฌ์ผํต์ ์ผ๋ก ์ ๋ ฅ ๋ฐ์ผ๋ฉด ์ข์๋ฐ ์ฝ๋ฉ์ด ๊ธธ์ด์ง ๊ฒ ๊ฐ์์ ๊ทธ๋ฅ ch = 'y'๊ฐ ์ ๋ ฅ ํ๋ค๊ณ ์น๊ณ ์งํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. switch(ch)ํจ์๋ก ์ ๋ ฅ์ ํ๋ฉด case๊ฐ 'y'์ 'n'์ด ์์ต๋๋ค. ๊ทธ๋์ 'y'๊ฐ ์ ๋ ฅ๋์๊ธฐ ๋๋ฌธ์ ์ฒซ๋ฒ์งธ case๋ฌธ์ด ์ํ๋๊ณ ํด๋น ๋ผ์ธ์ "input : Y"๋ผ๋ ๋ฌธ์์ด์ด ์๋ฆฌ์ผ๋ชจ๋ํฐ๋ก ์ถ๋ ฅ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ break๋ช ๋ น๋ฌธ์ผ๋ก switch๋ฌธ์ ๋น ์ ธ ๋์ต๋๋ค.
์ฌ๊ธฐ์, 'y' or 'n' ์ด ์๋ ๋ค๋ฅธ ๋ฌธ์๋ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์. ๋ฐ๋ก default๋ผ์ธ์ด ์ํ๋๊ณ ์๋ฆฌ์ผ๋ชจ๋ํฐ์๋ "error"๋ผ๋ ๋ฌธ์์ด์ด ์ถ๋ ฅ๋๊ณ ๋๋๊ฒ ๋ฉ๋๋ค. ๋์ถฉ switch ๋ฌธ์ ์ดํดํ์ จ๋์.
[ ๊ฒฐ๊ณผ ]
์์ ๋นจ๊ฐ ์ฌ๊ฐํ์ด ์ ๋ ฅ 'y'๊ณผ ์ผ์นํ๋ ์ฒซ๋ฒ์งธ "case 'y':"๋ผ์ธ์ด ๋ช ๋ น๋ฌธ์ ์ํํ๊ณ ์๋ฆฌ์ผ๋ชจ๋ํฐ๋ก ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ break๋ช ๋ น์ผ๋ก switch๋ฌธ์ ๋น ์ ธ ๋์ค๊ฒ ๋ฉ๋๋ค.
์๋ ์ด๊ฒฝ์ฐ๋ ์ ์ฌ์ฉํ์ง ์๊ณ ์ฌ๋ฌ๊ฐ์ ๋ฒ์๋ฅผ ๋๋์ด์ ์ ํํ ๋๋ IF~else if๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ๋น์ฃผ์ผ๋ฒ ์ด์ง ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ์ ํํ์ด์ง๋ง Select ๋ฌธ์ด Switch๋ฌธ์ธ๋ฐ ๋ฒ์ ์ง์ ํ๋๊ฒ ์๋ฏธ์ ์ผ๋ก ํธํ๋ฐ C์์๋ ์ข ํํ์ด ์ ๊ฒฝ์ฐ ๋ถ์์ฐ์ค๋ฝ๊ฒ ๋ณด์ ๋๋ค. ๊ทธ๋์ ๊ทธ๋ฅ IF~else if๋ฌธ์ ์ฌ์ฉํ๊ณ ์๋ค์.
[ ๋ฒ์ ]
swtich(ch){
case 1 ... 10:
case 11 ... 20:
case 21 ... 30:
default:
}
case 'a' ... 'z':
์ด๋ ๊ฒ ์ ์ธ๊ฐ๋ก ํ์ ํฉ๋๋ค. ๋น์ฃผ์ผ๋ฒ ์ด์ง์ ๊ฒฝ์ฐ๋ To๋ผ๋ ๋จ์ด๋ก ๋ฒ์๋ฅผ ํ์๋ฅผ ํฉ๋๋ค.
Select Case ch
case 1 To 10 :
case 11,12,13 :
case else:
End Select
์ด๋ฐ์์ด๋ฉด ์ข ์ข์๋ฐ ์ 3๊ฐ๋ผ ๊ทธ๋ฆฌ๊ณ ๋ถ์ด์ ํํํ๋ฉด ์๋๊ณ ์ํผ ์ข ๋ถ์์ฐ์ค๋ฌ์ด ๋ฒ์ ์ง์ ์ด๋ค์.
์ด์ ์ง๋์๊ฐ์ IF๋ฌธ์์ ์ฑ์ ํ์ ์ ์ถ๋ ฅํ๋ ์์ ๋ฅผ switch๋ฌธ์ผ๋ก ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค.
[ ์์์ค ]
void setup()
{
Serial.begin(9600);
int Eng = 75;
if (Eng >= 90) Serial.println("A");
else if (Eng >= 80) Serial.println("B");
else if (Eng >= 70) Serial.println("C");
else if (Eng >= 60) Serial.println("D");
else Serial.println("F");
}
[ Switch-case ์์ค ]
void setup()
{
Serial.begin(9600);
int Eng = 75;
switch(Eng){
case 90 ... 100:
Serial.println("A");
break;
case 80 ... 89:
Serial.println("B");
break;
case 70 ... 79:
Serial.println("C");
break;
case 60 ... 69:
Serial.println("D");
break;
default:
Serial.println("F");
}
}
[ ๊ฒฐ๊ณผ ]
๋์ถฉ ์์ค๋ค์ ๋ณด์๊ณ ์ฝ๋ฉํ ๋ค์ ์ ๋ ฅ๊ฐ๋ค์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ค์ ๋๋ ค๋ณด์๋ฉด ์ ํ ์ ์ด๋ฌธ์ ๋์์ ์ด๋์ ๋ ์ดํดํ์ค ์ ์์๊ฑฐ์์.
Switch๋ฌธ์ IF๋ฌธ๊ฐ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ๊ฐ์ case ์ค์ ์ผ์นํ๋ ํ๋์ case์ ๋ช ๋ น์ ์ํํ๋ ์ ํ ์ ์ด๋ฌธ์ด๋ผ๊ณ ๋จธ๋ฆฌ์์ ๋ฃ์ด ๋์ธ์. ๋ฒ์์ ๊ฒฝ์ฐ๋IF~else if๋ฌธ์ ๊ทธ๋ฅ ์ฌ์ฉํ๋๊ฒ ๋ณด๊ธฐ ๋ ์ข๊ฒ ์ฃ . ์ค๋ ๋ฐฐ์ด ๋ฒ์ switch ๋ฌธ์์๋ ์ด๋ฐ ํํ์ด ์๋ค๋ ์ ๋๋ง ์์ ๋์๊ณ ์. ๊ฐ๋ณ์ ์ธ ๊ฒฝ์ฐ์๋ง ์ฌ๋ฌ๊ฐ ์ค์ ํ๋๋ฅผ ์ ํํ ๋๋ if๋ฌธ๋ณด๋ค Switch๋ฌธ์ด ๊ฐ๋ ์ฑ์ด๋ ํํ์์ ๋ ๋์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค.
์ฝ๋ฉ์ด๋ผ๋ ๊ฒ์ ์ฐ์ ์์ ์ด ์ฝ๋ฉํ๊ณ ๊ทธ ์ฝ๋ฉํ ๋ด์ฉ์ ์ฝ๊ธฐ ํธํ ํํ๋ก ์ฝ๋ฉํ๋๊ฒ ๋ฌด์ฒ ์ค์ํฉ๋๋ค. ๊ทธ๋์ ํ๋ก๊ทธ๋จ ์ธ์ด ๊ต์ฌ๋ค์ ๋ณด๋ฉด ์คํ์ผ๋ค์ด ์ฝ๊ฐ์ฉ ๋ค๋ฆ ๋๋ค. ๋ถ๋ช ๋์ผํ ์ฝ๋ฉ์ธ๋ฐ ๋๋ ์ ์์ ๊ณผ ์ ๋ง์ง ์๋ ์ฝ๋ฉ๋ค์ด ์์ด์ ์ฝ์ด๋ ๋ฌด์จ ํํ์ธ์ง ์ ์ดํด๊ฐ ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊บผ์์. ์ ๊ฐ ์ด ๊ธ์ ์ดํด ๋ชปํ์ ๋ค๊ณ ํด์ ์ด๋ณด๋ถ๋ค์ ์์ ์ด ๋ถ์กฑํ๊ฒ ์๋๋ผ ์ ์ฝ๋ฉ ์คํ์ผ์ด ์ ์๋ง์์ ๊ทธ๋ฐ๊ฑฐ๋๊น์ ์ฌ๋ฌ ์ฝ๋ฉ๋ค์ ์ดํด๋ณด๊ณ ์์ ์ ๋ง๋ ์คํ์ผ์ ์ฐพ์์ ๊ณต๋ถํ์๋๊ฒ ์ง์ง ์ค์ํฉ๋๋ค.
์ ๋ C์ธ์ด ์ฑ ์ด 5๊ถ์ด ๋์ต๋๋ค. ํ์์ ๋ฐ๋ผ์ ์ฌ๋ฌ ์ข ๋ฅ๋ฅผ ๊ตฌ๋งค๋ฅผ ํ๋๋ฐ ์ด๋ค ์ฑ ์ ๋ณด๊ธฐ๊ฐ ์ฝ๊ณ ์ด๋ค ์ฑ ์ ๋์ ์๋ง์์ ์ฝ๊ธฐ๊ฐ ํ๋ ์ฑ ๋ค๋ ์์์ต๋๋ค. ์ด๊ฒ ์ ์์ ์ฝ๋ฉ๊ณผ ๋์ ์ฝ๋ฉ ์คํ์ผ์ด ๋ค๋ฅผ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ธ๋ฐ์ ํน์ ํ๋ก๊ทธ๋จ์ธ์ด์ ๊ด์ฌ์์ผ์๋ฉด ์์ ์์ ๊ฐ์ ์ข ๋ฅ์ ์๋ก ๋ค๋ฅธ ์ ์๋ค์ ์ฑ ๋ค์ ํ๋ฒ ์ฝ์ด๋ณด์ธ์. ์ด๋ค์ฑ ์ ๋๋์ด ์ค๊ณ ์ด๋ค์ฑ ์ ๋ด๋ ๋ชจ๋ฅด๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋๋ ๋๋์ด ์ ํ ์๋ ์ฑ ๋ค๋ ์์ต๋๋ค. ๊ทธ ์ฑ ์ด ๋ฌธ์ ๊ฐ ์๋๊ฒ ์๋๋ผ ์์ ์ด ๊ณต๋ถํ ์์ค๊ณผ ๋๋ ์ง๊ธ๊น์ง ๊ณต๋ถํด์๋ ์ฝ๋ฉ ์คํ์ผ์ด ์ฑ ์ ์ด ์ ์์ ๋์ ์ฝ๋ฉ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํน์ ์ด๊ธ์ ์ฝ๊ณ ์ดํด๊ฐ ์๋๋ฉด ๋ค๋ฅธ ๋ฃจํธ๋ก ๊ฒ์์ ํตํด์ ํด๋น ์ ์ด๋ฌธ์ ์ฐพ์์ ์ฝ์ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ์๋์ด๋ ธ ์ ๋ฌธ์์๊ฒ ์ฝ๋ฉ์ ํ ๋ ํ์ํ ์ต์ ๋ฌธ๋ฒ๋ง ์๊ฐํ๋ ํฌ์คํธ๋ผ์ ์๋ต๋ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ์ดํด๊ฐ ์๋๋ฉด ํ์ดํ ์ ๋ชฉ์ ํค์๋๋ก ํด์ ๊ตฌ๊ธ ๊ฒ์์ ํตํด ํด๋น ๋ฌธ๋ฒ์ ๋ฐ๋ก ๊ณต๋ถํด์ฃผ์ธ์.
์ด์์ผ๋ก ๋ง๋ฌด๋ฆฌ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.