๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[inflearn ๊ฐ•์˜] ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - switch๋ฌธ๊ณผ ์—ด๊ฑฐ์ฒด ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/C++

[inflearn ๊ฐ•์˜] ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - switch๋ฌธ๊ณผ ์—ด๊ฑฐ์ฒด

์ง•์ง•์•ŒํŒŒ์นด 2023. 6. 27. 20:06
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ์–ด์†ŒํŠธ๋ฝ ๊ฒŒ์ž„์•„์นด๋ฐ๋ฏธ ๋‹˜์˜ ์œ ํŠœ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

=> 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;
}
728x90
๋ฐ˜์‘ํ˜•
Comments