Skip to content

Latest commit

ย 

History

History
1101 lines (876 loc) ยท 32.7 KB

README.md

File metadata and controls

1101 lines (876 loc) ยท 32.7 KB

์ œ์–ด ํ๋ฆ„

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ธ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ , ๊ทธ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…๋“ค์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

๋ถˆ ๋Œ€์ˆ˜(boolean algebra)

๋ถˆ ๋Œ€์ˆ˜๋Š” ๋…ผ๋ฆฌํ•™์—์„œ ์ง„๋ฆฌ๊ฐ’(truth value), ์ฆ‰ ์ฐธ๊ณผ ๊ฑฐ์ง“์„ 1๊ณผ 0์— ๋Œ€์‘์‹œํ‚ค๊ณ , ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ์œผ๋กœ ๋ฐ”๊พผ ๋Œ€์ˆ˜ ์ฒด๊ณ„์ž…๋‹ˆ๋‹ค. ๋ถˆ ๋Œ€์ˆ˜์˜ ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ์€ ๋‹ค์Œ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

a b a + b
0 0 0
0 1 1
1 0 1
1 1 1
a b a ร— b
0 0 0
0 1 0
1 0 0
1 1 1

์—ฌ๊ธฐ์„œ 1 + 1 = 1์ด ๋˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ๋ง์…ˆ, ๊ณฑ์…ˆ๊ณผ ํฐ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ๋ง์…ˆ์„ ๋…ผ๋ฆฌํ•ฉ(logical disjunction) ๋˜๋Š” OR ์—ฐ์‚ฐ, ๊ณฑ์…ˆ์„ ๋…ผ๋ฆฌ๊ณฑ(logical conjunction) ๋˜๋Š” AND ์—ฐ์‚ฐ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋˜๋Š”๊ณผ ๊ทธ๋ฆฌ๊ณ ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ์ด์œ ๋Š” 0์„ ๊ฑฐ์ง“, 1์„ ์ฐธ์œผ๋กœ ๊ต์ฒดํ•ด๋ณด๋ฉด ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ ๋Œ€์ˆ˜์—์„  ์ด๊ฒƒ ๋ง๊ณ ๋„ ๋ถ€์ •(negation) ๋˜๋Š” NOT ์—ฐ์‚ฐ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์—ฐ์‚ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

a ยฌa
0 1
1 0

์ฐธ์„ ๊ฑฐ์ง“์œผ๋กœ, ๊ฑฐ์ง“์„ ์ฐธ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์ด ์žˆ์ง€๋งŒ, ๋‚˜์ค‘์— ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ถˆ ๋Œ€์ˆ˜์˜ ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ์€ ๊ตํ™˜๋ฒ•์น™๊ณผ ๊ฒฐํ•ฉ๋ฒ•์น™ ๋ถ„๋ฐฐ๋ฒ•์น™์ด ๋ชจ๋‘ ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ ์„ฑ์งˆ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

  • a + b = b + a
  • a ร— b = b ร— a
  • a + (b + c) = (a + b) + c
  • a ร— (b ร— c) = (a ร— b) ร— c
  • c(a + b) = ca + cb

๋˜ ๋“œ ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™(De Morgan's laws)์€ ๋ถˆ ๋Œ€์ˆ˜์—์„œ๋„ ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

  • ยฌ(a + b) = ยฌa ร— ยฌb
  • ยฌ(a ร— b) = ยฌa + ยฌb

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(logical operator)

์œ„์—์„œ ๋ฐฐ์šด ์„ธ ์—ฐ์‚ฐ์€ ๋ชจ๋‘ C์—์„œ ์—ฐ์‚ฐ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„, ์œ„์—์„œ ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ์ž์™€ ๋ชจ์–‘์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. C์—์„œ ๋…ผ๋ฆฌํ•ฉ์€ ||, ๋…ผ๋ฆฌ๊ณฑ์€ &&, ๋ถ€์ •์€ ! ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

|๋ผ๋Š” ๊ธฐํ˜ธ๋Š” ๋ฐ”(bar)๋ผ๋Š” ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ์—์„œ Shift + โ‚ฉ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    printf("%d || %d = %d\n", 0, 0, 0 || 0);
    printf("%d || %d = %d\n", 0, 1, 0 || 1);
    printf("%d || %d = %d\n", 1, 0, 1 || 0);
    printf("%d || %d = %d\n", 1, 1, 1 || 1);
    printf("\n");
    printf("%d && %d = %d\n", 0, 0, 0 && 0);
    printf("%d && %d = %d\n", 0, 1, 0 && 1);
    printf("%d && %d = %d\n", 1, 0, 1 && 0);
    printf("%d && %d = %d\n", 1, 1, 1 && 1);
    printf("\n");
    printf("!%d = %d", 0, !0);
    printf("!%d = %d", 1, !1);
}
0 || 0 = 0
0 || 1 = 1
1 || 0 = 1
1 || 1 = 1

0 && 0 = 0
0 && 1 = 0
1 && 0 = 0
1 && 1 = 1

!0 = 1
!1 = 0

printf์—์„œ \n์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค„๋ฐ”๊ฟˆ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๋‚˜์ค‘์— ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ๋•Œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

\๋ผ๋Š” ๊ธฐํ˜ธ๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ(backslash)๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์‹œ๋Š” ํฐํŠธ๊ฐ€ ๋‹์›€๊ฐ™์€ ํ•œ๊ตญ์–ด ํฐํŠธ์ด๋ฉด \๋Š” โ‚ฉ๋กœ ๋ณด์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

C๋ฅผ ํฌํ•จํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„  ์–ด๋–ค ๊ฐ’์„ ๋…ผ๋ฆฌ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, 0์„ ๊ฑฐ์ง“์œผ๋กœ, 0์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฐ’์„ ์ฐธ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์˜ ์˜ˆ์ œ์—์„œ 1์„ 2๋‚˜ (-5)๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”๋„ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ ๊ฒฐ๊ณผ๊ฐ’์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

&& ์—ฐ์‚ฐ์ž๋Š” ||๋ณด๋‹ค ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค(&&๋Š” ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ž). ๊ทธ๋ž˜์„œ 1 || 2 && 5๋Š” 1 || (2 && 5)๋กœ ๋ฒˆ์—ญ๋ฉ๋‹ˆ๋‹ค. ! ์—ฐ์‚ฐ์ž๋Š” ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋‚˜ sizeof ์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ !1 + 5๋Š” (!1) + 5๊ฐ€ ๋˜์–ด ๊ฒฐ๊ณผ๊ฐ’์ด 5๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋‹จ๋ฝ ํ‰๊ฐ€(short-circuit evaluation)

์ด ๊ฐ•์ขŒ์—์„œ ~์˜ ๊ฒฐ๊ณผ๊ฐ’์€ ~ is evaluated as๋ฅผ ๋ฒˆ์—ญํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ดํ•ญ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋“ค์€ ํ•ญ์ƒ ์ขŒํ•ญ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋จผ์ € ๊ณ„์‚ฐ(evaluation)ํ•˜๊ณ , ์šฐํ•ญ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ์ž์—์„œ ์ขŒํ•ญ์ด 1์ด๊ฑฐ๋‚˜, ๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ž์—์„œ ์ขŒํ•ญ์ด 0์ด๋ผ๋ฉด, ๋ถˆ ๋Œ€์ˆ˜์˜ ๋‹ค์Œ ์„ฑ์งˆ์— ์˜ํ•ด, ์šฐํ•ญ์„ ๊ณ„์‚ฐํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค.

  • 1 + a = 1
  • 0 ร— a = 0

์šฐํ•ญ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋“  ๊ฑฐ์ง“์ด๋“  ํ•ญ์ƒ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. C์—์„  ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ด๋Ÿฐ ๊ฒฝ์šฐ ์šฐํ•ญ์„ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ๋‹จ๋ฝ ํ‰๊ฐ€(short-circuit evaluation)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹จ๋ฝ ํ‰๊ฐ€๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i = 3, j;
    j = 1 || (i = 5);
    printf("%d %d", i, j);
}
3 1

(i = 5)๋ฅผ ํ†ตํ•ด i์— 5๋ฅผ ์ง‘์–ด๋„ฃ์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด 3์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ์ž์˜ ์ขŒํ•ญ์ด ์ฐธ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, (i = 5)๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i = 3, j;
    j = (1 == 2) && (i = 5);
    printf("%d %d", i, j);
}
3 0

๋…ผ๋ฆฌ๊ณฑ ์—ฐ์‚ฐ์ž์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ขŒํ•ญ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด๋ผ๋ฉด ์šฐํ•ญ์„ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋น„๊ต ์—ฐ์‚ฐ์ž(comparison operator)

๋น„๊ต ์—ฐ์‚ฐ์ž(comparison operator; relational operator)๋Š” ๋‘ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ€ ์ง„๋ฆฌ๊ฐ’์ด ๋˜๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž๋“ค์ž…๋‹ˆ๋‹ค. ์ด ์—ฌ์„ฏ๊ฐ€์ง€์˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

C++20์—์„  ๋น„๊ต ์—ฐ์‚ฐ์ž๊ฐ€ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    printf("%d %d %d\n", 3 <  5, 4 <  4, 6 <  5);
    printf("%d %d %d\n", 3 <= 5, 4 <= 4, 6 <= 5);
    printf("%d %d %d\n", 3 >  5, 4 >  4, 6 >  5);
    printf("%d %d %d\n", 3 >= 5, 4 >= 4, 6 >= 5);
    printf("%d %d %d\n", 3 == 5, 4 == 4, 6 == 5);
    printf("%d %d %d\n", 3 != 5, 4 != 4, 6 != 5);
}
1 0 0
1 1 0
0 0 1
0 1 1
0 1 0
1 0 1

<, >, <=, >=๋Š” ๋ชจ์–‘์—์„œ ๋ณด์‹œ๋ฉด ์•Œ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๋ถ€๋“ฑํ˜ธ์—์„œ ์œ ๋ž˜ํ•œ ๋น„๊ต ์—ฐ์‚ฐ์ž๋“ค์ž…๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž์— ๋”ฐ๋ผ ์ขŒํ•ญ์ด๋‚˜ ์šฐํ•ญ์ด ๋ฐ˜๋Œ€ํŽธ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜, ๋˜๋Š” ๊ฐ™์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด 1์ด, ์•„๋‹ˆ๋ฉด 0์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ==๋Š” ์–‘๋ณ€์˜ ์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด 1, ๊ฐ™์ง€ ์•Š์œผ๋ฉด 0์ด ๋˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, !=๋Š” ์–‘๋ณ€์˜ ์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด 1, ๊ฐ™์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด 0์ด ๋˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๊ณ , ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ณด๋‹ค ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ 1 + b < 3 * 5 && 6 != c / 4๋Š” (((1 + b) < (3 * 5)) && (6 != (c / 4)))๋กœ ๋ฒˆ์—ญ๋ฉ๋‹ˆ๋‹ค.

๋ณตํ•ฉ๋ฌธ(compound statement)

๋ณตํ•ฉ๋ฌธ(compound statement)๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋„ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

{
    [<๋ฌธ์žฅ 1>]
    [<๋ฌธ์žฅ 2>]
    [<๋ฌธ์žฅ 3>]
    ...
    [<๋ฌธ์žฅ n>]
}

๋ชจ์–‘๋งŒ ๋ณด๋ฉด int main() { ... }์—์„œ int main()๋งŒ ์ง€์šด ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main() {
    { int i; }
    {
        int j = 5;
        printf("%d", j);
    }
    {
        int k = 6;
        {
            int l = 7;
            printf("%d", 7);
        }
    }
    {}
}

int j = 5;๋‚˜ printf("%d", j);๋Š” ๊ทธ ์ž์ฒด๋กœ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์ด์ง€๋งŒ, { int j = 5; printf("%d", j); } ์ž์ฒด๋„ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๋ณตํ•ฉ๋ฌธ์€ ๋ฌธ์žฅ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณตํ•ฉ๋ฌธ ์•ˆ์— ๋ณตํ•ฉ๋ฌธ์„ ์ง‘์–ด๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. {}๊ฐ™์ด ๋นˆ ๋ณตํ•ฉ๋ฌธ๋„ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , { int i; }์ฒ˜๋Ÿผ ๋ฌธ์žฅ์ด ํ•˜๋‚˜๋งŒ ๋“ค์–ด์žˆ๋Š” ๋ณตํ•ฉ๋ฌธ๋„ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™” ์‹๊ณผ ๋น„์Šทํ•˜๋‹ค๋Š” ๊ฒƒ์— ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”.

if๋ฌธ(if statement)

์กฐ๊ฑด๋ฌธ(conditional statement)์€ ๊ฒฐ๊ณผ๊ฐ’์ด ๋…ผ๋ฆฌ๊ฐ’์ธ ์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์‹์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฌธ์žฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. C์˜ ๋Œ€ํ‘œ์ ์ธ ์กฐ๊ฑด๋ฌธ์€ if๋ฌธ(if statement)์ž…๋‹ˆ๋‹ค. if๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์”๋‹ˆ๋‹ค.

if (<์กฐ๊ฑด์‹>) <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ> [else <์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ>]

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    if (3 < 5)
        printf("3 is smaller than 5\n");
    else
        printf("3 is not smaller than 5\n");

    if (4 == 6)
        printf("4 is equal to 6\n");
    else
        printf("4 is not equal to 6\n");
}
3 is smaller than 5
4 is not equal to 6

if (...) ์•ˆ์—๋Š” ์กฐ๊ฑด๋ฌธ์ด ๋“ค์–ด๊ฐ€๋Š”๋ฐ, ๊ทธ ์กฐ๊ฑด๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฉด <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ>์ด, ๊ฑฐ์ง“์ด๋ฉด <์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ>์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

if๋ฌธ์—๋Š” ๋ณตํ•ฉ๋ฌธ๋„ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main() {
    int i; scanf("%d", &i);
    if (1 <= i && i <= 10) {
        printf("true: ");
        printf("i is between 1 and 10");
    }
    else {
        printf("false: ");
        printf("i is not between 1 and 10");
    }
}
: 5
true: i is between 1 and 10
: 12
false: i is not between 1 and 10

1 <= i && i <= 10์ด๋ผ๊ณ  ์ ์€ ๊ฒƒ์— ์ฃผ๋ชฉํ•ด์ฃผ์„ธ์š”. 1 <= i์˜ ๊ฒฐ๊ณผ๋Š” ๋…ผ๋ฆฌ๊ฐ’์ž…๋‹ˆ๋‹ค. i <= 10๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ณ ์š”. i๊ฐ€ 1๊ณผ 10 ์‚ฌ์ด์— ์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์ด ๋˜๋Š” ์‹์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด 1 <= i && i <= 10์ด๋ผ๊ณ  ์ ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1 <= i <= 10์€ (1 <= i) <= 10์œผ๋กœ ํ•ด์„๋˜๊ธฐ ๋•Œ๋ฌธ์—, i๊ฐ€ 1 ๋ฏธ๋งŒ์ด๋ผ๊ณ  ํ•ด๋„ 0 <= 10, i๊ฐ€ 10์„ ์ดˆ๊ณผํ•ด๋„ 1 <= 10์ด ๋˜์–ด ํ•ญ์ƒ ์ฐธ์ธ ์‹์ด ๋ฉ๋‹ˆ๋‹ค. ๋น„๊ต ์—ฐ์‚ฐ์ž์˜ ๊ฒฐ๊ณผ๋Š” ๋…ผ๋ฆฌ๊ฐ’์ด๋ผ๋Š” ๊ฒƒ์„ ํ•ญ์ƒ ๊ธฐ์–ตํ•ด์ฃผ์„ธ์š”.

๋งŒ์•ฝ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด else ์ž์ฒด๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    if (1)
    {
        printf("Foo\n");
    }
    printf("Bar\n");
}
Foo
Bar

์‹ 1์„ ๋…ผ๋ฆฌ๊ฐ’์œผ๋กœ ํ•ด์„ํ•˜๋ฉด ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— if๋ฌธ์˜ ์กฐ๊ฑด์‹์œผ๋กœ 1์„ ์‚ฌ์šฉํ•˜๋ฉด if () { ... } ์•ˆ์˜ ๋ฌธ์žฅ๋“ค์€ ํ•ญ์ƒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

if๋ฌธ์€ ๊ทธ ์ž์ฒด๋กœ ๋ฌธ์žฅ์ด๊ณ , if๋ฌธ ์•ˆ์—๋Š” ๋ฌธ์žฅ์ด ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— if๋ฌธ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๊ฒน์ณ ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main() {
    int i; scanf("%d", &i);
    if (i < 0)
        printf("i is smaller than 0");
    else {
        if (i <= 10)
            printf("i is between 0 and 10");
        else
            printf("i is bigger than 10");
    }
}
: -2
i is smaller than 0
: 7
i is between 0 and 10
: 15
i is bigger than 10

if๋ฌธ ์ž์ฒด๋Š” ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์œ„ ์˜ˆ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณตํ•ฉ๋ฌธ ์—†์ด ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main() {
    int i; scanf("%d", &i);
    if (i < 0)
        printf("i is smaller than 0");
    else if (i <= 10)
        printf("i is between 0 and 10");
    else
        printf("i is bigger than 10");
}

ํฌ์ธํ„ฐ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ

์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ํ–‰๋™์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ˜๋“œ์‹œ 0 ๋“ฑ์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€์˜ ์˜ˆ์ œ์—์„  ํฌ์ธํ„ฐ์— ์ด๋ฏธ ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๋ฅผ ๋Œ€์ž…ํ•˜๊ฑฐ๋‚˜, ํฌ์ธํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜€๋Š”๋ฐ์š”, ํฌ์ธํ„ฐ๋„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

int main()
{
    int *i = 0;
}

ํฌ์ธํ„ฐ๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ์žฅ์ ์ด ์žˆ๋Š”๋ฐ์š”, if๋ฌธ ๋“ฑ์—์„œ ์กฐ๊ฑด์‹์— ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์†Œ๊ฐ€ 0์ด๋ฉด ๊ทธ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    int *i = 0, j; scanf("%d", &j);

    if (j > 10) i = &j;

    if (i)
        printf("The pointer is pointing to some integer: %d", *i);
    else
        printf("The pointer is not pointing anywhere");
}
: 5
The pointer is not pointing anywhere
: 25
The pointer is pointing to some integer: 25

์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์ด 10 ์ดˆ๊ณผ์ด๋ฉด ํฌ์ธํ„ฐ์— j์˜ ์ฃผ์†Œ๋ฅผ ๋Œ€์ž…ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๋งจ ์ฒ˜์Œ์— 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์กฐ๊ฑด์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด i๊ฐ€ ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€, ์•ˆ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

C++์—์„œ๋„ ํฌ์ธํ„ฐ์— 0์„ ๋Œ€์ž…ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ 0์„ ์ง์ ‘์ ์œผ๋กœ ๋Œ€์ž…ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์€ ์Šต๊ด€์ž…๋‹ˆ๋‹ค. C++์—์„œ ๋นˆ ํฌ์ธํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚˜์ค‘์— ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด ์—ฐ์‚ฐ์ž(conditional operator)

5์žฅ์—์„œ ์—ฐ์‚ฐ์ž์˜ ๋ถ„๋ฅ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ–ˆ์„ ๋•Œ, ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์„ธ ๊ฐœ์ธ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž(ternary operator)๊ฐ€ ์žˆ๋‹ค๊ณ  ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จํ•ญ ์—ฐ์‚ฐ์ž๋‚˜ ์ดํ•ญ ์—ฐ์‚ฐ์ž์™€ ๋‹ฌ๋ฆฌ, C์˜ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ๋”ฑ ํ•˜๋‚˜์ธ๋ฐ์š”, ๋ฐ”๋กœ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž(conditional operator)์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์”๋‹ˆ๋‹ค.

<์กฐ๊ฑด์‹> ? <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์‹> : <์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์‹>

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    int i; scanf("%d", &i);
    int j = (i % 2 == 0) ? 20 : 10;
    printf("%d", j);
}
: 16
20
: 27
10

i % 2 == 0๋ผ๋Š” ์‹์€ i๊ฐ€ ์ง์ˆ˜์ด๋ฉด ์ฐธ, ํ™€์ˆ˜์ด๋ฉด ๊ฑฐ์ง“์ด ๋˜๋Š” ์‹์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด ์—ฐ์‚ฐ์ž์˜ <์กฐ๊ฑด์‹>์— ์ด ์‹์„ ๋„ฃ์œผ๋‹ˆ, i์˜ ๊ฐ’์— ๋”ฐ๋ผ j๊ฐ€ 20 ๋˜๋Š” 10์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋„ if๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์‹>๊ณผ <์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์‹> ์ค‘ ํ•œ ์ชฝ๋งŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    int i = 5;
    int j = (1 != 2) ? 6 : (i = 7);
    printf("%d %d", i, j);
}
5 6

์‹ (1 != 2)๊ฐ€ ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—, (i = 7)์€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

while๋ฌธ(while statement)

์ปดํ“จํ„ฐ์˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์  ์ค‘ ํ•˜๋‚˜๋Š” ์ฃผ์–ด์ง„ ์ผ์„ ์•„์ฃผ ๋งŽ์€ ํšŸ์ˆ˜๋กœ ๊พธ์ค€ํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์‹ญ๋งŒ๋ช… ์ •๋„๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ํ†ต๊ณ„๋ฅผ ๋‚ธ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์‚ฌ๋žŒ์ด ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ช‡ ์ฒœ๋ช…๋„ ๋˜์ง€ ์•Š์•„ ์ง€์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ๋Š” ์‹ญ๋งŒ๋ช…์ด ์•„๋‹ˆ๋ผ ์‹ญ์–ต๋ช…์ด๋ผ๊ณ  ํ•ด๋„ ์ง€์น˜์ง€ ์•Š๊ณ  ํ†ต๊ณ„์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ(loop)์€ ์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค.

while๋ฌธ์€ C์˜ ๋ฐ˜๋ณต๋ฌธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. while๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์”๋‹ˆ๋‹ค.

while (<์กฐ๊ฑด์‹>) <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ>

while๋ฌธ์€

  1. <์กฐ๊ฑด์‹>์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด ๋ฌธ์žฅ์„ ์ข…๋ฃŒํ•˜๊ณ , ์ฐธ์ด๋ผ๋ฉด 2๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
  2. <์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ๋ฌธ์žฅ>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. 1๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    int i; scanf("%d", &i);
    while (i > 0)
        printf("%d ", i--);
}
: 5
5 4 3 2 1 

5 4 3 2 1 ์ด ์ถœ๋ ฅ๋œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์žํ•œํ…Œ์„œ 5๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ i์— 5๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  2. 5 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  3. printf("%d ", i--);๊ฐ€ ์‹คํ–‰๋˜์–ด 5 ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  i๊ฐ€ 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  4. 4 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  5. printf("%d ", i--);๊ฐ€ ์‹คํ–‰๋˜์–ด 4 ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  i๊ฐ€ 3์ด ๋ฉ๋‹ˆ๋‹ค.
  6. 3 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  7. printf("%d ", i--);๊ฐ€ ์‹คํ–‰๋˜์–ด 3 ์ด ์ถœ๋ ฅ๋˜๊ณ  i๊ฐ€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  8. 2 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  9. printf("%d ", i--);๊ฐ€ ์‹คํ–‰๋˜์–ด 2 ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  i๊ฐ€ 1์ด ๋ฉ๋‹ˆ๋‹ค.
  10. 1 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  11. printf("%d ", i--);๊ฐ€ ์‹คํ–‰๋˜์–ด 1 ์ด ์ถœ๋ ฅ๋˜๊ณ  i๊ฐ€ 0์ด ๋ฉ๋‹ˆ๋‹ค.
  12. 0 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด๋ฏ€๋กœ, while๋ฌธ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, while๋ฌธ์€ ์กฐ๊ฑด์‹ -> ์‹คํ–‰ -> ์กฐ๊ฑด์‹ -> ์‹คํ–‰ -> ... -> ์กฐ๊ฑด์‹ -> ์ข…๋ฃŒ์˜ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

break๋ฌธ(break statement)

break๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ์กฐ๊ฑด๋ฌธ์˜ ๊ฒฐ๊ณผ์— ์ƒ๊ด€์—†์ด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. while๋ฌธ๋„ ๋ฐ˜๋ณต๋ฌธ์ด๊ธฐ ๋•Œ๋ฌธ์— while๋ฌธ ์•ˆ์—์„œ break๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. break๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

break;

์ฆ‰, break๋ฌธ์€ ์‹์ด ํ•„์š”์—†๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i; scanf("%d", &i);
    while (i > 0)
    {
        printf("%d ", i);
        if (i == 6)
        {
            printf("foo");
            break;
        }
        i -= 1;
    }
}
: 5
5 4 3 2 1 
: 8
8 7 6 foo

8์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ 8 7 6 foo๊ฐ€ ์ถœ๋ ฅ๋œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์žํ•œํ…Œ์„œ 8๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ i์— 8์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  2. 8 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  3. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 8 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  4. 8 == 6์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด๋ฏ€๋กœ, if๋ฌธ ์•ˆ์ชฝ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  5. i -= 1;์— ์˜ํ•ด i๊ฐ€ 7์ด ๋ฉ๋‹ˆ๋‹ค.
  6. 7 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  7. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 7 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  8. 7 == 6์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด๋ฏ€๋กœ, if๋ฌธ ์•ˆ์ชฝ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  9. i -= 1;์— ์˜ํ•ด i๊ฐ€ 6์ด ๋ฉ๋‹ˆ๋‹ค.
  10. 6 > 0์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  11. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 6 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  12. 6 == 6์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฏ€๋กœ,
  13. printf("foo");๊ฐ€ ์‹คํ–‰๋˜์–ด foo๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  14. break;๊ฐ€ ์‹คํ–‰๋˜์–ด while๋ฌธ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ ์— ๋ฐ˜๋ณต๋ฌธ์˜ ์‹คํ–‰์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

do-while๋ฌธ(do-while statement)

do-while๋ฌธ๋„ C์˜ ๋ฐ˜๋ณต๋ฌธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. do-while๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์”๋‹ˆ๋‹ค.

do <์‹คํ–‰ํ•  ๋ฌธ์žฅ> while (<์กฐ๊ฑด์‹>);

do-while๋ฌธ ๋์— ๋ถ™์–ด์žˆ๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์— ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”. ๋ฐ˜๋“œ์‹œ ์„ธ๋ฏธ์ฝœ๋ก ์ด ๋ถ™์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

do-while๋ฌธ์€

  1. <์‹คํ–‰ํ•  ๋ฌธ์žฅ>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. <์กฐ๊ฑด์‹>์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด ๋ฌธ์žฅ์„ ์ข…๋ฃŒํ•˜๊ณ , ์ฐธ์ด๋ผ๋ฉด 3์œผ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
  3. <์‹คํ–‰ํ•  ๋ฌธ์žฅ>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  4. 2๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

์ฆ‰, while๋ฌธ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋งจ ์ฒ˜์Œ์ด ์กฐ๊ฑด๋ฌธ์ด ์•„๋‹ˆ๋ผ, ์‹คํ–‰ -> ์กฐ๊ฑด์‹ -> ์‹คํ–‰ -> ... -> ์กฐ๊ฑด์‹ -> ์ข…๋ฃŒ์˜ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i; scanf("%d", &i);
    do
    {
        printf("%d ", i);
        i -= 1;
    } while (i > 5);
}
: 5
5 
: 8
8 7 6 

์กฐ๊ฑด์‹์ด i > 5์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  5 ๊ฐ€ ์ถœ๋ ฅ๋œ ์ด์œ ๋Š” do-while๋ฌธ์ด ๋งจ ์ฒ˜์Œ์—๋Š” ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

do-while๋ฌธ๋„ ๋ฐ˜๋ณต๋ฌธ์ด๊ธฐ ๋•Œ๋ฌธ์—, break๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i = 5;
    do
    {
        printf("%d", i);
        break;
    } while (i > 0);
}
5

for๋ฌธ(for statement)

๋งˆ์ง€๋ง‰์œผ๋กœ ์†Œ๊ฐœํ•  ๋ฐ˜๋ณต๋ฌธ์€ for๋ฌธ์ž…๋‹ˆ๋‹ค. for๋ฌธ์€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

for (<๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ> [<์กฐ๊ฑด์‹>]; [<๋ฐ˜๋ณต์‹>]) <์‹คํ–‰๋ฌธ>
for ([<์ดˆ๊ธฐ์‹>]; [<์กฐ๊ฑด์‹>]; [<๋ฐ˜๋ณต์‹>]) <์‹คํ–‰๋ฌธ>

for๋ฌธ์€

  1. <๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ>์ด๋‚˜ <์ดˆ๊ธฐ์‹>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. <์กฐ๊ฑด์‹>์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด ๋ฌธ์žฅ์„ ์ข…๋ฃŒํ•˜๊ณ , ์ฐธ์ด๋ผ๋ฉด 3์œผ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
  3. <์‹คํ–‰๋ฌธ>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  4. <๋ฐ˜๋ณต์‹>์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  5. 2๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

์ฆ‰, ์–‘ ์ชฝ ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์€ while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
    <๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ> | <์ดˆ๊ธฐ์‹>;
    while (<์กฐ๊ฑด์‹>)
    {
        <์‹คํ–‰๋ฌธ>
        <๋ฐ˜๋ณต์‹>;
    }
}

์•ž์œผ๋กœ ๋ฌธ๋ฒ• ์„ค๋ช…์—์„œ |๋Š” ๋˜๋Š”์œผ๋กœ ํ•ด์„ํ•ด์ฃผ์„ธ์š”.

์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    for (int i = 0; i < 5; ++i)
        printf("%d ", i);
}
0 1 2 3 4 

์ด ์˜ˆ์ œ์—์„  for๋ฌธ ์•ˆ์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, for๋ฌธ์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋‘ ๊ฐœ ์ค‘ ์œ„์˜ ๋ฌธ๋ฒ•์ด ์ ์šฉ๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์‰ฌ์šด ์ดํ•ด๋ฅผ ์œ„ํ•ด, ์œ„ ์˜ˆ์ œ ์† for๋ฌธ์„ while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    {
        int i = 0;
        while (i < 5)
        {
            printf("%d ", i);
            ++i;
        }
    }
}

0 1 2 3 4 ๊ฐ€ ์ถœ๋ ฅ๋œ ๊ณผ์ •์ด ๋ณด์ด์‹œ๋‚˜์š”?

  1. 0 < 5์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  2. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 0 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  3. ++i๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 1์ด ๋ฉ๋‹ˆ๋‹ค.
  4. 1 < 5์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  5. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 1 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  6. ++i๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  7. 2 < 5์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  8. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 2 ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  9. ++i๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 3์ด ๋ฉ๋‹ˆ๋‹ค.
  10. 3 < 5์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  11. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 3 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  12. ++i๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  13. 4 < 5์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  14. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 4 ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  15. ++i๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 5๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  16. 5 < 5์˜ ๊ฒฐ๊ณผ๋Š” ๊ฑฐ์ง“์ด๊ธฐ ๋•Œ๋ฌธ์—, while๋ฌธ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ ๋Œ€์‹  ์ดˆ๊ธฐ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i;
    for (i = 0; i < 5; ++i)
        printf("%d ", i);
}

์ด ์˜ˆ์ œ ์† for๋ฌธ์„ while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i;
    {
        i = 0;
        while (i < 5)
        {
            printf("%d ", i);
            ++i;
        }
    }
}

์œ„ ์˜ˆ์ œ์™€ ๋‹ค๋ฅด๊ฒŒ int i;๊ฐ€ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๊ธด ํ–ˆ์ง€๋งŒ, ์‹คํ–‰์—” ๋ณ„๋กœ ์ฐจ์ด๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•˜๊ฒŒ 0 1 2 3 4 ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

for๋ฌธ๋„ ๋ฐ˜๋ณต๋ฌธ์ด๊ธฐ ๋•Œ๋ฌธ์— break๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    for (int i = 5; i >= 0; --i)
    {
        if (i == 2)
            break;
        printf("%d ", i);
    }
}
5 4 3 

์œ„ ์˜ˆ์ œ์˜ for๋ฌธ์„ while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    {
        int i = 5;
        while (i >= 0)
        {
            if (i == 2)
                break;
            printf("%d ", i);
            --i;
        }
    }
}

5 4 3 ์ด ์™œ ์ถœ๋ ฅ๋˜๋Š”์ง€ ๊ฐ์ด ์žกํžˆ์‹œ๋‚˜์š”? for๋ฌธ์€ ๋ณต์žกํ•˜์ง€๋งŒ ์•„์ฃผ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ„์„ํ•˜๊ธฐ ํž˜๋“ค์‹ค ๋• while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•ด๋ณด์‹œ๋ฉด์„œ for๋ฌธ์— ์ต์ˆ™ํ•ด์ง€๋ ค๊ณ  ๋…ธ๋ ฅํ•ด์ฃผ์„ธ์š”.

for๋ฌธ์€ ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ๋•Œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. 6์žฅ์—์„œ sizeof ์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ด๊ฑธ for๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int arr[] = { 1, 1, 2, 3, 5, 8, 13, };
    printf("int arr[] = { ");
    for (int i = 0; i < sizeof arr / sizeof(int); ++i)
        printf("%d, ", arr[i]);
    printf("};");
}
int arr[] = { 1, 1, 2, 3, 5, 8, 13, };

์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐฐ์—ด์— ์ž…๋ ฅ๋ฐ›์„ ๋•Œ๋„ for๋ฌธ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int arr[5];
    int len = sizeof arr / sizeof(int);
    for (int i = len - 1; i >= 0; --i)
        scanf("%d", arr + i);

    for (int i = 0; i < len; ++i)
        printf("%d ", arr[i] * 2);
}
: 18 62 17 26 20
40 52 34 124 36
: 18
: 62 17
: 26 20
40 52 34 124 36

์œ„ ์˜ˆ์ œ์—์„  arr[4], arr[3], arr[2], ... ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

arr[i]๊ฐ€ *(arr + i)๋ž‘ ๋™์น˜๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์ฃผ์„ธ์š”. &arr[i]๋Š” arr + i๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

6์žฅ์—์„œ scanf๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ŠคํŽ˜์ด์Šค๋‚˜ ์ค„๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•œ ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์ฃผ์„ธ์š”.

for๋ฌธ์˜ ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ๋ฐ˜๋ณต์‹์€ ๋ชจ๋‘ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์‹์ด๋‚˜ ๋ฐ˜๋ณต์‹์ด ์ƒ๋žต๋˜๋Š” ๊ฒƒ์€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. for (; <์กฐ๊ฑด์‹>;) <์‹คํ–‰๋ฌธ>์ฒ˜๋Ÿผ ์“ฐ๋ฉด while (<์กฐ๊ฑด์‹>) <์‹คํ–‰๋ฌธ>์ด ๋˜๋Š” ๊ฒƒ๊ณผ ํฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

for ([์ดˆ๊ธฐ์‹]; <์กฐ๊ฑด์‹>; [๋ฐ˜๋ณต์‹]) <์‹คํ–‰๋ฌธ> 

->

{
    [์ดˆ๊ธฐ์‹];
    while (<์กฐ๊ฑด์‹>)
    {
        <์‹คํ–‰๋ฌธ>
        [๋ฐ˜๋ณต์‹];
    }
}

์—ฌ๊ธฐ์„œ [์ดˆ๊ธฐ์‹]๊ณผ [๋ฐ˜๋ณต์‹]๋งŒ ์ƒ๋žตํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ์š”. ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

for (<๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ> <์กฐ๊ฑด์‹>; [๋ฐ˜๋ณต์‹]) <์‹คํ–‰๋ฌธ>

->

{
    <๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ>
    while (<์กฐ๊ฑด์‹>)
    {
        <์‹คํ–‰๋ฌธ>
        [๋ฐ˜๋ณต์‹];
    }
}

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ์กฐ๊ฑด์‹์„ ์ƒ๋žตํ•ด๋ฒ„๋ฆฌ๋ฉด while๋ฌธ ์•ˆ์— ์กฐ๊ฑด์‹์ด ๋“ค์–ด์žˆ์ง€ ์•Š๊ฒŒ ๋˜์–ด ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์กฐ๊ฑด์‹์ด ์ƒ๋žต๋˜๋ฉด while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ–ˆ์„ ๋•Œ ์กฐ๊ฑด์‹์— 1์ด ๋“ค์–ด์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    for (int i = 0;;i += 2)
    {
        printf("%d ", i);
    }
}

์ด ์˜ˆ์ œ๋ฅผ while๋ฌธ์œผ๋กœ ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    {
        int i = 0;
        while (1)
        {
            printf("%d ", i);
            i += 2;
        }
    }
}

์ด ํ”„๋กœ๊ทธ๋žจ์„ Ctrl + F5๋ฅผ ๋ˆŒ๋Ÿฌ ์‹คํ–‰ํ•ด๋ณด๋ฉด

0 2 4 6 8 10 12 14 16 18 20 ...

ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

continue๋ฌธ(continue statement)

continue๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต์ด๋ผ๋Š” ๋ง์ด ๋ชจํ˜ธํ•˜๋‹ค๊ณ  ๋А๋ผ์‹ค ๊ฒƒ ๊ฐ™์€๋ฐ, ์ •ํ™•ํžˆ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ๋ฐ‘์—์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. continue๋ฌธ์€ break๋ฌธ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

continue;

continue๋ฌธ๋„ ์‹์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int i = 0;
    while (i < 5)
    {
        printf("%d ", i);
        continue;
        ++i;
    }
}
0 0 0 0 0 0 ...

continue๋ฌธ์„ ์‚ฌ์šฉํ•˜๋‹ˆ continue; ๋ฐ‘์— ์žˆ๋˜ ++i๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž์„ธํžˆ ๋ถ„์„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘ํ–ˆ์„ ๋•Œ,
    1. ์ ์ ˆํ•œ ๊ณต๊ฐ„์„ i๋ผ๊ณ  ์ด๋ฆ„์ง“๊ณ  0์„ ์ง‘์–ด๋„ฃ์Šต๋‹ˆ๋‹ค.
    2. i < 5์˜ ๊ฒฐ๊ณผ๊ฐ€ 1์ด ์•„๋‹ˆ๋ผ๋ฉด while๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
    3. i์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    4. 2๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    5. i๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
    6. 2๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

4๋ฒˆ์—์„œ 2๋ฒˆ์œผ๋กœ ์ด๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๋ชจ๋“  ๋ฐ˜๋ณต๋ฌธ์€ ์กฐ๊ฑด์‹ ์‹คํ–‰ -> ๋ฐ˜๋ณตํ•  ๋ฌธ์žฅ ์ˆ˜ํ–‰์˜ ํ˜•ํƒœ๋ฅผ ๋ ๋Š”๋ฐ, continue๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณตํ•  ๋ฌธ์žฅ ์ˆ˜ํ–‰๊ณผ์ •์„ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์‹œ ์กฐ๊ฑด์‹ ์‹คํ–‰๊ณผ์ •์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ„ ์˜ˆ์ œ์—์„œ while๋ฌธ ๋Œ€์‹ ์— do-while๋ฌธ์„ ์‚ฌ์šฉํ•ด๋„ ๋น„์Šทํ•œ ์ผ์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

for๋ฌธ์—์„œ๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด์ฃผ์„ธ์š”.

#include <stdio.h>

int main()
{
    for (int i = 0; i < 3; ++i)
    {
        printf("%d ", i);
        continue;
        printf("foo ");
    }
}
0 1 2 

์ค‘๊ฐ„์— ์žˆ๋Š” continue;์—์„œ ๋ฐ”๋กœ ์กฐ๊ฑด์‹ ์‹คํ–‰ ๊ณผ์ •์œผ๋กœ ๋„˜์–ด๊ฐ”๋‹ค๋ฉด ++i๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜์„ ๋•Œ, i๊ฐ€ ์ž˜ ์ฆ๊ฐ€ํ•˜๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ for๋ฌธ ๋‚ด์—์„œ continue๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์กฐ๊ฑด์‹ ์‹คํ–‰ ๊ณผ์ •์ด ์•„๋‹ˆ๋ผ ๋ฐ˜๋ณต์‹ ์‹คํ–‰ ๊ณผ์ •์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์ œ์—์„œ 0 1 2 ๊ฐ€ ์ถœ๋ ฅ๋œ ๊ณผ์ •์„ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. 0 < 3์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  2. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 0 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  3. continue;๊ฐ€ ์‹คํ–‰๋˜์–ด <์‹คํ–‰๋ฌธ>์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  4. ++i;๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 1์ด ๋ฉ๋‹ˆ๋‹ค.
  5. 1 < 3์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  6. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 1 ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  7. continue;๊ฐ€ ์‹คํ–‰๋˜์–ด <์‹คํ–‰๋ฌธ>์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  8. ++i;๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  9. 2 < 3์˜ ๊ฒฐ๊ณผ๋Š” ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์—,
  10. printf("%d ", i);๊ฐ€ ์‹คํ–‰๋˜์–ด 2 ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  11. continue;๊ฐ€ ์‹คํ–‰๋˜์–ด <์‹คํ–‰๋ฌธ>์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  12. ++i;๊ฐ€ ์‹คํ–‰๋˜์–ด i๊ฐ€ 3์ด ๋ฉ๋‹ˆ๋‹ค.
  13. 3 < 3์˜ ๊ฒฐ๊ณผ๋Š” ๊ฑฐ์ง“์ด๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋ฌดํ•œ ๋ฃจํ”„(infinite loop)

๋ฐ˜๋ณต๋ฌธ์€ ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์„ ๊ณ„์† ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์‹์œผ๋กœ 1์ด๋‚˜ 2, 20 < 100์ฒ˜๋Ÿผ ๊ฒฐ์ •๊ฐ’์ด ํ•ญ์ƒ ์ฐธ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฐ’์ธ ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์€ ์˜์›ํžˆ ๋ฐ˜๋ณต๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฌดํ•œ ๋ฃจํ”„(infinite loop)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ์—” ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ ๋ฃจํ”„์— ๊ฐ‡ํžˆ๋‹ค๋ผ๋Š” ํ‘œํ˜„์ด ์žˆ์„ ์ •๋„๋กœ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์ƒํ™ฉ์€ ๋Œ€๊ฒŒ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ •์ˆ˜๋ฅผ ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    for (int i = 10; i >= 1; ++i)
        printf("%d ", i);
}

๊ทธ๋Ÿฐ๋ฐ, ์›๋ž˜ --i๋ผ๊ณ  ์จ์•ผ ํ•˜๋Š” ๊ฑธ ++i๋ผ๊ณ  ์จ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. i >= 1์€ ํ•ญ์ƒ 1์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์‹์ด ํ•ญ์ƒ ์ฐธ์ด๋‹ˆ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—” ๋ณดํ†ต ์ข‹์ง€ ์•Š์€ ์ผ์ด ์ผ์–ด๋‚ฌ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์กฐ๊ฑด์‹์— ํ•ญ์ƒ ์ฐธ์ด ๋˜๋Š” ์‹์„ ๋„ฃ์ง€๋Š” ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ํ˜น์‹œ 1์„ ๊ผญ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ ์˜ˆ์ œ์ฒ˜๋Ÿผ break๋ฌธ์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    printf("Sum calculator\n");
    int sum = 0;
    while (1)
    {
        printf("Gimme a number: ");
        int i; scanf("%d", &i);
        if (!i)
            break;
        sum += i;
    }
    printf("Sum: %d", sum);
}
Sum calculator
Gimme a number: 7
Gimme a number: 18
Gimme a number: 25
Gimme a number: 16
Gimme a number: 19
Gimme a number: -34
Gimme a number: 14
Gimme a number: 0
Sum: 65

์œ„ ์˜ˆ์ œ์ฒ˜๋Ÿผ break๋ฌธ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ถฉ๋ถ„ํžˆ ์žˆ์œผ๋ฉด ์กฐ๊ฑด์‹์ด 1์ด๋ผ๊ณ  ํ•˜๋”๋ผ๋„ ๋ฌดํ•œ ๋ฃจํ”„๋ผ๊ณ  ๋ถ€๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹ !i์— ์ฃผ๋ชฉํ•ด์ฃผ์„ธ์š”. ๋ถ€์ • ์—ฐ์‚ฐ์ž๋Š” ์ฐธ์ธ ๊ฐ’์„ ๊ฑฐ์ง“์œผ๋กœ, ๊ฑฐ์ง“์ธ ๊ฐ’์„ ์ฐธ์œผ๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. ์ฆ‰, 0์ด ์•„๋‹Œ ์‹์€ 0์œผ๋กœ, 0์ธ ์‹์€ 1๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ i๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด 0์ด ๋˜์–ด if๋ฌธ ์•ˆ์ชฝ์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , i๊ฐ€ 0์ด๋ฉด ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด 1์ด ๋˜์–ด if๋ฌธ ์•ˆ์ชฝ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ž๊ฐ€ 0์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ ํ™œ์šฉํ•˜๊ธฐ

๋ฐ˜๋ณต๋ฌธ๋“ค๋„ ๋ฌธ์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋ฐ˜๋ณต๋ฌธ์„ ์ง‘์–ด๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ๋ผ๋ฆฌ ๊ฒน์ณ์“ฐ๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๊ฐ€ ๋ฐ”๋กœ ๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅ์ธ๋ฐ์š”,

#include <stdio.h>

int main()
{
    int row_num = 2;
    while (row_num <= 9)
    {
        for (int i = 1; i <= 9; ++i)
            printf("%d * %d = %d\n", row_num, i, row_num * i);
        ++row_num;
    }
}
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
...
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

์ด๋ ‡๊ฒŒ ์ˆœ์‹๊ฐ„์— ๊ตฌ๊ตฌ๋‹จ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์กฐ๊ฑด๋ฌธ๋„ ๋ฌธ์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ์กฐ๊ฑด๋ฌธ์„ ๋„ฃ๊ธฐ๋„ ํ•˜๊ณ , ์กฐ๊ฑด๋ฌธ ์•ˆ์— ๋ฐ˜๋ณต๋ฌธ์„ ๋„ฃ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์€ ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ 10000 ์ดํ•˜์ผ ๋•Œ, ๊ทธ ์ •์ˆ˜๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์†Œ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

int main()
{
    int threshold; scanf("%d", &threshold);

    if (threshold > 10000)
        printf("given number is too big");
    else
        for (int num = 2; num <= threshold; ++num)
        {
            int is_prime = 1, div = 2;

            while (div * div <= num)
            {
                if (num % div == 0)
                {
                    is_prime = 0;
                    break;
                }

                ++div;
            }

            if (is_prime)
                printf("%d ", num);
        }
}
: 100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
: 20000
given number is too big

2 ์ด์ƒ threshold ์ดํ•˜์˜ ๋ชจ๋“  ์ •์ˆ˜ num์— ๋Œ€ํ•ด, 2์ด์ƒ ๋ฃจํŠธ num์ดํ•˜์˜ ๋ชจ๋“  ์ •์ˆ˜ div์— ๋Œ€ํ•ด, ์‹ num % div == 0์ด 1์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด num์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ณ , 1์ธ ๊ฒฝ์šฐ๊ฐ€ ์—†์œผ๋ฉด num์€ ์†Œ์ˆ˜๋ผ๊ณ  ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๋ฐ˜๋ณต์ ์ธ ๊ณ„์‚ฐ์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ณต๋ฌธ์„ ์—ฌ๋Ÿฌ๊ฐœ ๊ฒน์ณ ์ผ์„ ๋•Œ, break๋ฌธ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฑด์ง€ ํŒŒ์•…ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ: ํ•จ์ˆ˜