Post

[C] ์กฐ๊ฑด๋ฌธ

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

ํ”„๋กœ๊ทธ๋žจ์€ ํ•ญ์ƒ ์œ„์—์„œ ์•„๋ž˜๋กœ๋งŒ ํ๋ฅด์ง€ ์•Š๋Š”๋‹ค. ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ธธ๋กœ ๊ฐ€์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๊ณ , ๊ทธ ํ๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์ œ์–ด๋ฌธ(Control)์ด๋‹ค.

์ œ์–ด๋ฌธ: ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ด(๋ณ€๊ฒฝ)ํ•˜๋Š” ๋ฌธ์žฅ.

์ข…๋ฅ˜๋ฌธ๋ฒ•
์กฐ๊ฑด๋ฌธ(Conditional)if ~ else, switch ~ case
์ˆœํ™˜๋ฌธ(Loop)for, while, do ~ while

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด ์ค‘ ์กฐ๊ฑด๋ฌธ์„ ๋‹ค๋ฃฌ๋‹ค.


1. if ~ else ์กฐ๊ฑด๋ฌธ

if(์กฐ๊ฑด์‹)์€ ์กฐ๊ฑด์‹์ด โ€˜์ฐธโ€™์ด๋ฉด ๊ทธ๋‹ค์Œ์˜ โ€˜ํ•œ ๋ฌธ์žฅโ€™ ๋˜๋Š” โ€˜ํ•œ ๋ธ”๋กโ€™์„ ์‹คํ–‰ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.

Desktop View

Desktop View

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๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๊ทธ ์•„๋ž˜ ๋ฌธ์žฅ๋“ค์€ ๊ฑด๋„ˆ๋›ด๋‹ค.

Desktop View

Desktop View

point์— ์–ด๋–ค ๊ฐ’์„ ๋„ฃ๋А๋ƒ์— ๋”ฐ๋ผ ๋’ค์˜ ์กฐ๊ฑด์‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์–ด๋А ์กฐ๊ฑด์—๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ๋งˆ์ง€๋ง‰ else๊ฐ€ ์‹คํ–‰๋œ๋‹ค.


2. switch ์กฐ๊ฑด๋ฌธ

switch๋Š” ํ•˜๋‚˜์˜ ์ •์ˆ˜ ๊ฐ’์„ ์—ฌ๋Ÿฌ case์™€ ๋น„๊ตํ•ด ๋ถ„๊ธฐํ•œ๋‹ค.

1
2
3
4
5
6
switch (์ •์ˆ˜)
{
    case x:          // ๊ด„ํ˜ธ ์•ˆ์˜ ๊ฐ’์ด x์ผ ๋•Œ ์‹คํ–‰
        ...
        break;       // switch ๋ธ”๋ก์—์„œ ๋น ์ ธ๋‚˜์˜ด
}
  • case ์˜ค๋ฅธ์ชฝ์˜ ๊ฐ’์€ switch(์ •์ˆ˜) ๊ด„ํ˜ธ ๊ฐ’๊ณผ ๋น„๊ตํ•  ํ›„๋ณด๋‹ค.
  • ๊ฐ case๋งˆ๋‹ค break;๋ฅผ ๋„ฃ์–ด ์‹คํ–‰์„ ๋ฉˆ์ถ”๊ณ  switch ๋ธ”๋ก์„ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

Desktop View

Desktop View

n์˜ ๊ฐ’์„ 1๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— case 1์ด ์‹คํ–‰๋˜์—ˆ๋‹ค.

Desktop View

๐Ÿ’ก switch ๊ด„ํ˜ธ ์•ˆ์—๋Š” ํ•˜๋‚˜์˜ ์‹(expression)์„ ๋„ฃ์–ด๋„ ๋œ๋‹ค. ๋‹จ, ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ์ •์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค.


3. ์ค‘์ฒฉ(nested) ์กฐ๊ฑด๋ฌธ

์ค‘์ฒฉ ์กฐ๊ฑด๋ฌธ์€ ๋ง ๊ทธ๋Œ€๋กœ ์กฐ๊ฑด๋ฌธ ์•ˆ์— ์žˆ๋Š” ์กฐ๊ฑด๋ฌธ์ด๋‹ค.

Desktop View

1
2
3
4
5
6
7
if (n % 2 == 0)         // ์ง์ˆ˜์ธ๊ฐ€?
    if (n % 3 == 0)     //   ์ง์ˆ˜์ด๋ฉด์„œ 3์˜ ๋ฐฐ์ˆ˜ โ†’ ์•ˆ์ชฝ if
        ...
    else                //   ์ง์ˆ˜์ง€๋งŒ 3์˜ ๋ฐฐ์ˆ˜ ์•„๋‹˜ โ†’ ์•ˆ์ชฝ else
        ...
else                    // ํ™€์ˆ˜
    ...

n์ด ์ง์ˆ˜์ธ์ง€ ๋จผ์ € ํŒ๋‹จํ•˜๊ณ , ์ง์ˆ˜๋ผ๋ฉด ๋‹ค์‹œ ๊ทธ ์•ˆ์—์„œ 3์˜ ๋ฐฐ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.

Desktop View

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 ๋’ค ์„ธ๋ฏธ์ฝœ๋ก  ๋‘ ๊ฐ€์ง€ ํ•จ์ •๋งŒ ์กฐ์‹ฌํ•˜๋ฉด ์‹ค์ˆ˜๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.