๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ๊ธฐ์ดˆ

[C/C++] 3. ์กฐ๊ฑด๋ฌธ(Conditional statement)

by ์„œ์•„๋ž‘๐Ÿ˜ 2021. 3. 18.

์กฐ๊ฑด๋ฌธ(Conditional statement)

์กฐ๊ฑด๋ฌธ์€ ์ œ์–ด๋ฌธ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ํ๋ฆ„์— ๋ถ„๊ธฐ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ฌธ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ๋ฆ„ ์ œ์–ด๋ฌธ์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์ง€์ •๋œ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

#if, else if, else

if ์ œ์–ด๋ฌธ์˜ ํ๋ฆ„(์ถœ์ฒ˜: https://www.guru99.com/how-to-use-conditional-statements-in-javascript.html)

 

condition์„ ๋‚˜ํƒ€๋‚ด๋Š” if๋ฌธ์— true, false๊ฐ€ ๋˜๋Š” ๋…ผ๋ฆฌ ๊ตฌ๋ฌธ์ด ๋“ค์–ด๊ฐ„๋‹ค.

 

#include <iostream>

int var = 5;
if ( var > 3 )
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.";    // C++ code
}

 ์œ„ ์˜ˆ์ œ์—์„œ var๋Š” 5์ด๋ฏ€๋กœ "var > 3"(condition)์€ true๊ธฐ ๋•Œ๋ฌธ์— cout ๊ตฌ๋ฌธ์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ "var <= 3" ์ด๋ผ๋ฉด, condition์€ false์ด๊ธฐ ๋•Œ๋ฌธ์— if๊ตฌ๋ฌธ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

 

์ด์™€ ๊ฐ™์ด ์กฐ๊ฑด๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์ด ์žˆ์„ ๋•Œ๋งŒ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. (์‚ฌ์‹ค ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ์— ๋น ์ง€์ง€ ์•Š๋Š” ํ•„์ˆ˜ ๊ตฌ๋ฌธ์ด๋‹ค.)

 

 

#include <iostream>

int var = 1;
if ( var > 3 )
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.";    // C++ code
}
else
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.";
}

 

์œ„ ์˜ˆ์ œ์—์„œ var๊ฐ€ 3๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€(condition์ด false) ๊ฒฝ์šฐ else๊ตฌ๋ฌธ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. if else๊ตฌ๋ฌธ์€ condition์ด true์ธ ๊ฒฝ์šฐ if๊ตฌ๋ฌธ์ด, condition์ด false์ธ ๊ฒฝ์šฐ else๊ตฌ๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.

 

 

#include <iostream>

int var = 3;
if ( var > 3 )
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.";    // C++ code
}
else if ( var == 3 )
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3 ์ž…๋‹ˆ๋‹ค.";
}
else
{
	std::cout << "๋ณ€์ˆ˜๋Š” 3๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.";
}

if, else if, else ๊ตฌ๋ฌธ ์ค‘ if์™€ if else๊ตฌ๋ฌธ์€ condition์ด true์ด๋ฉด ํ•ด๋‹น ๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค. ๋จผ์ € if ๊ตฌ๋ฌธ์ด true์ธ ๊ฒฝ์šฐ์—๋Š” if๊ตฌ๋ฌธ๋งŒ ์‹คํ–‰๋˜๊ณ  ์ „์ฒด ๊ตฌ๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค. ๋งŒ์•ฝ if ๊ตฌ๋ฌธ์ด false์ธ ๊ฒฝ์šฐ์—๋Š” ๋ฐ”๋กœ ๋‹ค์Œ์— ์˜ค๋Š” else if ๊ตฌ๋ฌธ์„ ํŒ๋‹จํ•˜์—ฌ true์ด๋ฉด else if ๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.

 

else if ๊ตฌ๋ฌธ์€ if์™€ else๊ตฌ๋ฌธ ์‚ฌ์ด์— 2๊ฐœ ์ด์ƒ ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, else์—†์ด if์™€ else if๋งŒ ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

# switch

 

switch๊ตฌ๋ฌธ์˜ ํ๋ฆ„(์ถœ์ฒ˜: http://www.tutorialspanel.com/php-switch-statement/index.htm)

 

 

์กฐ๊ฑด๋ฌธ์€ if๊ตฌ๋ฌธ๊ณผ switch๊ตฌ๋ฌธ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. switch๋Š” if๊ตฌ๋ฌธ์— ๋น„ํ•ด ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ช…ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์œผ๋‚˜, switch๊ตฌ๋ฌธ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ํž˜๋“  ๊ฒฝ์šฐ๋„ ์ ์ง€ ์•Š๋‹ค.

 

#include <iostream>

int var = 1;

switch (var)
{
	case 1: 
		std::cout << "๋ณ€์ˆ˜๋Š” 1์ž…๋‹ˆ๋‹ค."; 
		break;
	case 2: 
		std::cout << "๋ณ€์ˆ˜๋Š” 2์ž…๋‹ˆ๋‹ค.";
		break;
	case 3: 
		std::cout << "๋ณ€์ˆ˜๋Š” 3์ž…๋‹ˆ๋‹ค.";
		break;
	default:
		std::cout << "๋ณ€์ˆ˜๋Š” 1๋„ 2๋„ 3๋„ ์•„๋‹™๋‹ˆ๋‹ค.";
		break;
}

switch๊ตฌ๋ฌธ์— ๋“ค์–ด๊ฐ€๋Š” ๋ณ€์ˆ˜๋Š” ์ •์ˆ˜์™€ ๋ฌธ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ž๋Š” char c = 'h'์™€ ๊ฐ™์ด ๋ฌธ์ž๋ฅผ ๋œปํ•˜๊ณ  ๋ฌธ์ž์—ด์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ๋ณ€์ˆ˜ var์˜ ๊ฐ’์ด 1์ด๋ฏ€๋กœ case 1์„ ์‹คํ–‰ํ•œ๋‹ค. case 1์„ ์‹คํ–‰ํ•˜๊ณ  break๋กœ ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—, case 2์™€ 3์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

 

case๊ตฌ๋ฌธ์€ ํ•ญ์ƒ break๋กœ ๋๋‚˜์•ผ ํ•œ๋‹ค. break๋ฅผ ๋ถ™์ด์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ์—๋Ÿฌ or ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง„ ์•Š์ง€๋งŒ ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค. case 1 ๊ตฌ๋ฌธ์—์„œ break๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด, case 1๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ณ  ์ด์–ด์„œ case 2๊ตฌ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. case๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” break ๊ตฌ๋ฌธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ case๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , default๋Š” ํ•ด๋‹นํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ์—†์„ ๋•Œ ์‹คํ–‰๋œ๋‹ค. 

 

#include <iostream>

int num = 0;
std::cout << "1~3์‚ฌ์ด์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.";
std::cin >> num;

switch (num)
{
	case 1: 
		// case 1 ์ฝ”๋“œ 
		break;
	case 2: 
		// case 2 ์ฝ”๋“œ
		break;
	case 3: 
		// case 3 ์ฝ”๋“œ
		break;
	default:
		std::cout << "์ž˜๋ชป ์ž…๋ ฅํ•˜์…จ์Šต๋‹ˆ๋‹ค.";
		break;
}

 

์œ„์™€ ๊ฐ™์ด default๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€