[C] ์กฐ๊ฑด๋ฌธ
๐ ๋ค์ด๊ฐ๋ฉฐ
ํ๋ก๊ทธ๋จ์ ํญ์ ์์์ ์๋๋ก๋ง ํ๋ฅด์ง ์๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ธธ๋ก ๊ฐ์ผ ํ ๋๊ฐ ์๊ณ , ๊ทธ ํ๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ด ์ ์ด๋ฌธ(Control)์ด๋ค.
์ ์ด๋ฌธ: ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ ์ด(๋ณ๊ฒฝ)ํ๋ ๋ฌธ์ฅ.
| ์ข ๋ฅ | ๋ฌธ๋ฒ |
|---|---|
| ์กฐ๊ฑด๋ฌธ(Conditional) | if ~ else, switch ~ case |
| ์ํ๋ฌธ(Loop) | for, while, do ~ while |
์ด๋ฒ ๊ธ์์๋ ์ด ์ค ์กฐ๊ฑด๋ฌธ์ ๋ค๋ฃฌ๋ค.
1. if ~ else ์กฐ๊ฑด๋ฌธ
if(์กฐ๊ฑด์)์ ์กฐ๊ฑด์์ด โ์ฐธโ์ด๋ฉด ๊ทธ๋ค์์ โํ ๋ฌธ์ฅโ ๋๋ โํ ๋ธ๋กโ์ ์คํํ๊ณ , ๊ฑฐ์ง์ด๋ฉด ์คํํ์ง ์๊ณ ๋์ด๊ฐ๋ค.
if๋ง ์ฐ๋ฉด ์ฌ์ฌํ๋ค. ์ฌ๊ธฐ์ else if์ else๋ฅผ ๋ํ๋ค.
1
2
3
4
5
6
7
8
if (์กฐ๊ฑด์1) // ์กฐ๊ฑด์1์ด ์ฐธ์ผ ๋ ์ํ
...
else if (์กฐ๊ฑด์2) // ์๊ฐ ๊ฑฐ์ง์ด๊ณ ์กฐ๊ฑด์2๊ฐ ์ฐธ์ผ ๋ ์ํ
...
else if (์กฐ๊ฑด์3) // ์๊ฐ ๋ชจ๋ ๊ฑฐ์ง์ด๊ณ ์กฐ๊ฑด์3์ด ์ฐธ์ผ ๋ ์ํ
...
else // ์ ์กฐ๊ฑด์ด ๋ชจ๋ ๊ฑฐ์ง์ผ ๋ ์ํ
...
| ํค์๋ | ์คํ ์กฐ๊ฑด |
|---|---|
if | ์กฐ๊ฑด์์ด ์ฐธ์ผ ๋ |
else if | ์์ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๊ณ , ์์ ์ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋ |
else | ์์ ๋ชจ๋ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ (๋ง์ง๋ง ์ฒ๋ฆฌ) |
๐ก ์ฌ๋ฌ ๋ถ๊ธฐ ์ค ํ๋๊ฐ ์คํ๋๋ฉด ๋๋จธ์ง๋ ์คํ๋์ง ์๋๋ค.
else if๊ฐ ์คํ๋๋ฉด ๊ทธ ์๋ ๋ฌธ์ฅ๋ค์ ๊ฑด๋๋ด๋ค.
point์ ์ด๋ค ๊ฐ์ ๋ฃ๋๋์ ๋ฐ๋ผ ๋ค์ ์กฐ๊ฑด์ ์ค ํ๋๊ฐ ์คํ๋๋ค. ์ด๋ ์กฐ๊ฑด์๋ ํด๋นํ์ง ์์ผ๋ฉด ๋ง์ง๋ง else๊ฐ ์คํ๋๋ค.
2. switch ์กฐ๊ฑด๋ฌธ
switch๋ ํ๋์ ์ ์ ๊ฐ์ ์ฌ๋ฌ case์ ๋น๊ตํด ๋ถ๊ธฐํ๋ค.
1
2
3
4
5
6
switch (์ ์)
{
case x: // ๊ดํธ ์์ ๊ฐ์ด x์ผ ๋ ์คํ
...
break; // switch ๋ธ๋ก์์ ๋น ์ ธ๋์ด
}
case์ค๋ฅธ์ชฝ์ ๊ฐ์switch(์ ์)๊ดํธ ๊ฐ๊ณผ ๋น๊ตํ ํ๋ณด๋ค.- ๊ฐ
case๋ง๋คbreak;๋ฅผ ๋ฃ์ด ์คํ์ ๋ฉ์ถ๊ณswitch๋ธ๋ก์ ๋น ์ ธ๋์จ๋ค.
n์ ๊ฐ์ 1๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ case 1์ด ์คํ๋์๋ค.
๐ก
switch๊ดํธ ์์๋ ํ๋์ ์(expression)์ ๋ฃ์ด๋ ๋๋ค. ๋จ, ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋์ ์ ์์ฌ์ผ ํ๋ค.
3. ์ค์ฒฉ(nested) ์กฐ๊ฑด๋ฌธ
์ค์ฒฉ ์กฐ๊ฑด๋ฌธ์ ๋ง ๊ทธ๋๋ก ์กฐ๊ฑด๋ฌธ ์์ ์๋ ์กฐ๊ฑด๋ฌธ์ด๋ค.
1
2
3
4
5
6
7
if (n % 2 == 0) // ์ง์์ธ๊ฐ?
if (n % 3 == 0) // ์ง์์ด๋ฉด์ 3์ ๋ฐฐ์ โ ์์ชฝ if
...
else // ์ง์์ง๋ง 3์ ๋ฐฐ์ ์๋ โ ์์ชฝ else
...
else // ํ์
...
n์ด ์ง์์ธ์ง ๋จผ์ ํ๋จํ๊ณ , ์ง์๋ผ๋ฉด ๋ค์ ๊ทธ ์์์ 3์ ๋ฐฐ์์ธ์ง ํ๋จํ๋ค.
6์ ์
๋ ฅํ๋ฉด (์ง์์ด์ 3์ ๋ฐฐ์์ด๋ฏ๋ก) ๋ฐ๊นฅ if์ ์์ชฝ if๊ฐ ๋ชจ๋ ์คํ๋๋ค.
โ ๏ธ ์ฃผ์์ฌํญ
1. ์กฐ๊ฑด๋ฌธ ๋ค์ ์ธ๋ฏธ์ฝ๋ก (;)์ ๋ถ์ด์ง ๋ง ๊ฒ
1
2
3
4
if (10 < 4); // โ ์ฌ๊ธฐ์ if ๋ฌธ์ฅ์ด ๋๋๋ฒ๋ฆฐ๋ค!
{
// ์ด ๋ธ๋ก์ if์ ๋ฌด๊ดํ๊ฒ '๋ฌด์กฐ๊ฑด' ์คํ๋จ
}
if ๋ฐ๋ก ๋ค์ ;์ ๋ถ์ด๋ฉด ๊ฑฐ๊ธฐ์ if๊ฐ ๋๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ ๋ธ๋ก์ ์กฐ๊ฑด๊ณผ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ์คํ๋๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.
2. ๋น๊ต์ฐ์ฐ์ ==์ ๋์
์ฐ์ฐ์ =๋ฅผ ํท๊ฐ๋ฆฌ์ง ๋ง ๊ฒ
์ํ์์ ์ฐ๋ ๋ฑํธ(=)๋ C์์ ๋์
์ฐ์ฐ์๋ค. โ๊ฐ์๊ฐ?โ๋ฅผ ๋น๊ตํ ๋๋ ๋ฐ๋์ ==๋ฅผ ์จ์ผ ํ๋ค. (๋ถ๋ฑํธ <, >๋ ์ํ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉ)
๐ ์ ๋ฆฌ
1
2
3
4
5
6
์กฐ๊ฑด๋ฌธ
โโ if ~ else if ~ else ์กฐ๊ฑด์ด ์ฐธ์ธ ๋ถ๊ธฐ ํ๋๋ง ์คํ
โโ switch ~ case ์ ์ ๊ฐ์ case์ ๋น๊ต, break๋ก ํ์ถ
โโ ์ค์ฒฉ ์กฐ๊ฑด๋ฌธ ์กฐ๊ฑด๋ฌธ ์์ ์กฐ๊ฑด๋ฌธ
โ ๏ธ if ๋ค ์ธ๋ฏธ์ฝ๋ก ๊ธ์ง / ๋น๊ต๋ == , ๋์
์ =
์กฐ๊ฑด๋ฌธ์ ํ๋ก๊ทธ๋จ์ โํ๋จโ์ ๋ถ์ฌํ๋ค. ํนํ ==์ =, ๊ทธ๋ฆฌ๊ณ if ๋ค ์ธ๋ฏธ์ฝ๋ก ๋ ๊ฐ์ง ํจ์ ๋ง ์กฐ์ฌํ๋ฉด ์ค์๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์๋ค.









Comments powered by Disqus.