if ์กฐ๊ฑด๋ฌธ if conditional statement
if ์กฐ๊ฑด๋ฌธ (if conditional statement)
C++์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด๋ฌธ์ if ๋ช ๋ น๋ฌธ์ด๋ค
if(expression) //conditional expression
statement
or
if(expression) //conditional expression
statement
else
statement2
์์์ 'expression'์ ์กฐ๊ฑด์(conditional expression)์ด๋ผ๊ณ ํ๋ค.
์กฐ๊ฑด์์ด true (0์ด ์๋)๋ก ํ๊ฐ๋๋ฉด if๋ฌธ์ด ์คํ๋๋ค.
ํํ์์ด false๋ก ํ๊ฐ๋๋ฉด else ๋ฌธ์ด ์คํ๋๋ค. ( else ๋ฌธ์ด ์๋ ๊ฒฝ์ฐ)
if ๋ฌธ ๋ฐ์ indenting(๋ค์ฌ์ฐ๊ธฐ)์ด ๋์ด์๋๋ฐ ์ด๊ฑด ์๋์ผ๋ก ํด์ฃผ๋๊ฑฐ๋ค.
์ด๋ ๊ฒ ๋ฐ๋ก ๋ฌธ์ฅ์ ์ฐ๊ธฐ ๋ณด๋ค๋ { } ์ค๊ดํธ๋ก ์์ญ์ ์ธ์ฃผ๋๊ฒ ์ผ๋ฐ์ ์ด๋ค.
์์์ ๋ธ๋ก (Implicit blocks)
if ๋ฌธ ๋๋ else ๋ฌธ์ ๋ช ๋ น๋ฌธ ๋ถ๋ถ์ ๋ธ๋ก์ ์ ์ธํ์ง ์์ผ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ์์์ ์ผ๋ก ์ ์ธํ๋ค.
if(expression)
statement
else
statement2
์ค์ ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค
if(expression)
{
statement
}
else
{
statement2
}
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์๋ํ๋ ค ํ๋ค.
#include <iostream>
int main()
{
if(1)
int x = 5;
else
int x = 6;
std::cout << x;
return 0;
}
์ปดํ์ผ๋ฌ๋ ์๋ณ์ x๊ฐ ์ ์๋์ง ์์ ์ค๋ฅ๋ฅผ ์์ฑํ๋ฏ๋ก ์ปดํ์ผ๋์ง ์๋๋ค.
์์ ์์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
#include <iostream>
int main()
{
if(1)
{
int x = 5;
}//๋ณ์ x๋ ์ฌ๊ธฐ์ ์๋ฉธํ๋ค
else
{
int x = 6;
}//๋ณ์ x ๋ ์ฌ๊ธฐ์ ์๋ฉธํ๋ค
std::cout << x; //x๋ ์ฌ๊ธฐ์ ์ ์๋์ง ์๋๋ค.
return 0;
}
์ ์์ ์์ ๋ณ์ x ๋ ๋ธ๋ก ๋ฒ์๋ฅผ ๊ฐ์ง๊ณ , ๋ธ๋ก์ ๋์์ ์๋ฉธํ๋ค.
std::cout ํ์ ๋๋ฌํ ๋ ๊น์ง x๋ ์กด์ฌํ์ง ์๋๋ค.
if๋ฌธ ์ฐ๊ฒฐํ๊ธฐ
if-else ๋ฌธ์ ํจ๊ป ์ฐ๊ฒฐ ํ ์ ์๋ค.
์ฒซ์งธ, x > 10์ ํ๊ฐํ๋ค.
true ์ด๋ฉด "x is greater thaan 10"์ด ์ถ๋ ฅ๋๊ณ ์๋ฃ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด else๋ฌธ์ด ์คํ๋๋ค.
ํด๋น else๋ฌธ์ ์ค์ฒฉ๋ if ๋ฌธ์ ํฌํจํ๊ณ ์๋ค.
์ค์ฒฉ๋ if๋ฌธ ์์์ x < 10์ ํ๊ฐํ๊ฒ ๋๋ค.
์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น๋ฌธ ์คํ
์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น๋ฌธ์ ์คํํ๊ธฐ ์ํด ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๋ค.
if ๋ฌธ ๋ค์ ์ค๋ ๋ฌธ์ฅ์ด ํ๋ ์ผ ๊ฒฝ์ฐ์๋ ์ค๊ดํธ๋ฅผ ์๋ตํ ์ ์์ง๋ง
๋๊ฐ์ด์ ๋ฃ์ ๋์๋ ๋ ์ค์ด ๋์์ ์คํ๋๊ฒ ํ๋ ค๋ฉด ๊ผญ ์ค๊ดํธ๋ก ๋ฌถ์ด์ฃผ์ด์ผ ํ๋ค.
ํ์ด์ฌ์์๋ ๋์ด์ฐ๊ธฐ๋ก ๋ฌถ์ง๋ง C++์์๋ ์ค๊ดํธ๋ก ๋ฌถ์ด์ค๋ค.
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๊ฐ ํ ์ ์๋ ์ค์ ์์
bool ๊ณ์ฐ์ ํ ๋
if ๋ฌธ ๊ดํธ์์ ๋ด๋ถ์ ์ผ๋ก 0 ์ด ์๋๋ฉด true ์ด๋ค.0์ด๋ฉด false ์ด๋ค.
while ๋ฌธ์์๋ ๋น์ทํ ํํ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ค์ ๋ธ๋ก{}์ด ์๋ณด์ด๊ธฐ ๋๋ฌธ์
์ ์ญ์ธ๊ฐ ๋ณด๋ค ํน์ main ํจ์์์์๋ ์ ๋ถ ์๋ํ๋๊ฐ ๋ณด๋ค ์ฐฉ๊ฐ ํ ์ ์๋ค.
ํ์ง๋ง ์๋ ๋ด๋ถ์ ์ผ๋ก { }๊ฐ ์๋ค๊ณ , if ๋ฌธ ๋ฐ์ ๊ดํธ๊ฐ ์๋ค๊ณ ์๊ฐํด์ผ ํ๋ค.
๋ฌผ๋ก if ๋ฌธ ์๋ ๋ธ๋ก์์ ๋ณ์๋ฅผ ์ ์ธํ์ง ๋ง๋ผ๋ ๋ป์ ์๋๋ค.
์์์ ๋ณต์กํ ์ผ์ ํ๊ฒ ๋ ๋๋ ๋ณ์๋ฅผ ์ ์ธํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ด ๋ณ์์ scope ์ duration์ด if๋ฌธ ๋ฐ์ ๋ธ๋ก์ ๋ฒ์ด ๋์ง ๋ชปํ๋ค๋ ์๋ฏธ์ด๋ค.
if๋ฌธ ์ค์ฒฉ (Nesting if statements)
if๋ฌธ์ ๋ค๋ฅธ if ๋ฌธ ๋ด์ ์ค์ฒฉ ํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ์๋ x๊ฐ 10 ์ด์์ด๊ณ
10์ด์์ธ๊ฒ ์ค์์ x๊ฐ 20์ด์์ด๋๊น
10์ด์์ด๊ณ 20๋ณด๋ค ์์ ๊ฒ์ด else ์์ ์ถ๋ ฅ์ด ๋๋ค.
else๊ฐ 10์ด์์ด ์๋๋๋ก ๊ฑธ๋ฆฌ๊ฒ ํ๊ณ ์ถ์๋๋ ์ค๊ดํธ๋ก ๋ง์์ผํ๋ค.
๋ฌธ๋ฒ์ else๋ ๊ฐ์ฅ ๊ฐ๊น์ด์ ์๋ if ์ ๋ถ๊ฒ ๋์ด์๋ค.
๊ทธ๋์ Indenting์ด ์๋ง์ธ ์ํ์์
์ฝ๋ฉ์ ์ฐ์ฐํ ์ด๋ ๊ฒ ํ๋๋ผ๋
์ด else๋ ํ์๋ if ๋ฌธ์ ๋ถ์ ๊ฑธ๋ก ์๋์ ํ๋ค.
์ธ๋ดํ ์ด ์ด๋ ๊ฒ ๋์ด์๋๊ฒ์ ์๋ชป๋์ด์๋ ๊ฑฐ๋๊น
if๋ฌธ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ
๋ํ, if๋ฌธ์์ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ํจ๊ป ํ์ธ ํ ์ ์๋ค.
if๋ฌธ์ ์ผํญ ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ
์ ์ ๋๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ๋ ์ค์ ์์ ๊ฒ์ ์ ๋ ฅํ๋ ์ ๋ ฅํ๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ณด์.
if๋ฌธ์ null statement ๋ฃ๊ธฐ
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ค์ด ์ค์ํ๊ธฐ ์ข์ ๊ฒ์ null statement๋ผ๊ณ ํด์
์์ ์คํ์ํฌ ๋ด์ฉ์ ๋ฃ์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
null statement == ์๋ฌด๊ฒ๋ ํ์ง ์๋ ๊ฒ
๋ฌธ์ ๊ฐ ์๊ธฐ๋ ์ํฉ์ ์๋ก ๋ค์๋ฉด
if๋ฌธ์์ ํ๋ก๊ทธ๋จ ์ข ๋ฃ
if ๋ฌธ์ ํ๋ก๊ทธ๋จ์ ๊ธด๊ธํ๊ฒ ์ข ๋ฃ ์ํฌ ๋ ์ธ ์ ์๋ค.