๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - switch๋ฌธ๊ณผ ์ด๊ฑฐ์ฒด ๋ณธ๋ฌธ
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - switch๋ฌธ๊ณผ ์ด๊ฑฐ์ฒด
์ง์ง์ํ์นด 2023. 6. 27. 20:06<๋ณธ ๋ธ๋ก๊ทธ๋ ์ด์ํธ๋ฝ ๊ฒ์์์นด๋ฐ๋ฏธ ๋์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> C++ Let's Make Games
๐ซง switch๋ฌธ
: ๋ถ๊ธฐ๋ฌธ์ ํ ์ข
๋ฅ
: ๊ฐ์ด ๋ญ์ง๋ฅผ ์ฒดํฌํ๋ ๋ถ๊ธฐ๋ฌธ
switch(๋ณ์) {} ์ฝ๋๋ธ๋ญ
์ฝ๋ ๋ธ๋ญ ์์๋ case break ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ
case ์์ : ์ ํํ๋ก ์ฒ๋ฆฌ๊ฐ ๋จ
๋ณ์๊ฐ์ด ๋ฌด์์ธ์ง์ ๋ฐ๋ผ case ๋ค์ ์ค๋ ์์ ๋น๊ต
๐ซง ์ด๊ฑฐ์ฒด
์ด๊ฑฐ์ฒด ํ์
์ ๋ณ์ ์ ์ธ (๋ฌด์กฐ๊ฑด 4btye ์ฐจ์ง)
์ด๊ฑฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ์ธํ ๋ณ์๋ ๊ฐ์ ํํ ๋ฒ์๊ฐ ์ด๊ฑฐ์ฒด์ ๋์ด๋ ๊ฐ๋ค ์์์ ์ ํ ์ฌ์ฉ
sizeof(ํ์
or ๋ณ์) : ํด๋น ํ์
ํน์ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๊ตฌํด์ค
typeid(ํ์
or ๋ณ์).name() : typeid ์์ ๋ค์ด๊ฐ ํ์
ํน์ ๋ณ์์ ํ์
์ ๋ฌธ์์ด๋ก ๋ฐํํด์ค
// Chapter1_8
#include <iostream>
using namespace std;
/*
์ด๊ฑฐ์ฒด : ์ฐ์๋ ์ซ์์ ์ด๋ฆ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ
enum ์ด๊ฑฐ์ฒด๋ช
{}
์ด๊ฑฐ์ฒด๋ช
์ด์ฉํด์ ์ด๊ฑฐ์ฒด ํ์
์ ๋ณ์ ์ ์ธ ๊ฐ๋ฅ
์ฆ, ์ด๊ฑฐ์ฒด ์์ฒด๊ฐ ์ฌ์ฉ์ ์ ์ ๋ณ์ ํ์
๋ ์ ์์
์ด๊ฑฐ์ฒด๋ ์ซ์์ ์ด๋ฆ์ ๋ถ์ฌ์ฃผ๋ ๊ธฐ๋ฅ
*/
enum NUM
{
NUM_0, // ์๋ฌด๊ฒ๋ ๋ถ์ฌํ์ง ์์ ๊ฒฝ์ฐ 0๋ถํฐ 1์ฉ ์ฐจ๋ก๋ก ๊ฐ ๋ถ์ฌ
NUM_1,
NUM_2,
NUM_3,
};
#define NUM_4 4
int main()
{
/*
- switch ๋ฌธ : ๋ถ๊ธฐ๋ฌธ์ ํ ์ข
๋ฅ
๊ฐ์ด ๋ญ์ง๋ฅผ ์ฒดํฌํ๋ ๋ถ๊ธฐ๋ฌธ
switch(๋ณ์) {} ์ฝ๋๋ธ๋ญ
์ฝ๋ ๋ธ๋ญ ์์๋ case break ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ
case ์์ : ์ ํํ๋ก ์ฒ๋ฆฌ๊ฐ ๋จ
๋ณ์๊ฐ์ด ๋ฌด์์ธ์ง์ ๋ฐ๋ผ case ๋ค์ ์ค๋ ์์ ๋น๊ต
*/
int iNumber;
cout << "์ซ์ ์
๋ ฅ : ";
cin >> iNumber;
switch (iNumber) {
case NUM_1: // iNumber ๊ฐ์ด ๋ฌด์์ธ๊ฐ์ ๋ฐ๋ผ ์คํ๋๋ case ๊ตฌ๋ฌธ ๊ฒฐ์
cout << "์
๋ ฅํ ์ซ์๋ 1" << endl;
break; // break ๋ง๋๋ฉด switch ๋ฌธ ๋น ์ ธ๋๊ฐ๋ค
case NUM_2:
cout << "์
๋ ฅํ ์ซ์๋ 2" << endl;
// break ์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ์๋ ์๋ case ๊ตฌ๋ฌธ ๊ฐ์ ์คํ
case NUM_3:
cout << "์
๋ ฅํ ์ซ์๋ 3" << endl;
break;
case NUM_4:
cout << "์
๋ ฅํ ์ซ์๋ 4" << endl;
break;
default: // case ๋ก ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ์คํ๋๋ค
cout << "๊ทธ ์ธ ์ซ์์
๋๋น" << endl;
break;
}
// ์ด๊ฑฐ์ฒด ํ์
์ ๋ณ์ ์ ์ธ (๋ฌด์กฐ๊ฑด 4btye ์ฐจ์ง)
// ์ด๊ฑฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ์ธํ ๋ณ์๋ ๊ฐ์ ํํ ๋ฒ์๊ฐ ์ด๊ฑฐ์ฒด์ ๋์ด๋ ๊ฐ๋ค ์์์ ์ ํ ์ฌ์ฉ
NUM eNum = (NUM)10;
// sizeof(ํ์
or ๋ณ์) ๋ฅผ ํ๊ฒ ๋๋ฉด ํด๋น ํ์
ํน์ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๊ตฌํด์ค
cout << sizeof(NUM) << endl;
// typeid(ํ์
or ๋ณ์).name() typeid ์์ ๋ค์ด๊ฐ ํ์
ํน์ ๋ณ์์ ํ์
์ ๋ฌธ์์ด๋ก ๋ฐํํด์ค
cout << typeid(eNum).name() << endl;
cout << eNum << endl;
return 0;
}