
์ ์ญ๋ณ์
#include <stdio.h>
int main() {
int x = 10, y = 10;
if (x > 5) {
y = 20;
printf("x: %d, y: %d\n", x, y);
}
if (x > 9) {
x = 20;
printf("x: %d, y: %d\n", x, y);
}
if (x > 10) {
x = 10;
y = 20;
printf("x: %d, y: %d\n", x, y);
}
printf("x: %d, y: %d\n", x, y);
return 0;
}
x: 10, y: 20
x: 20, y: 20
x: 10, y: 20
x: 10, y: 20
์ง์ญ๋ณ์
#include <stdio.h>
int main() {
int x = 10, y = 10;
if (x > 5) {
int y = 20; // ์ง์ญ ๋ณ์ y (main์ y์๋ ๋ค๋ฆ)
printf("x: %d, y: %d\n", x, y); // x:10, y:20
}
if (x > 9) {
int x = 20; // ์ง์ญ ๋ณ์ x (main์ x์๋ ๋ค๋ฆ)
printf("x: %d, y: %d\n", x, y); // x:20, y:10
}
if (x > 10) {
x = 10;
y = 20;
printf("x: %d, y: %d\n", x, y);
}
printf("x: %d, y: %d\n", x, y); // x:10, y:10
return 0;
}
x: 10, y: 20
x: 20, y: 10
x: 10, y: 10
๋ณ์ ๋ฒ์ (์ค์ฝํ)
`int y = 20;`
โ ์ด๊ฑด if ๋ธ๋ก ์์์๋ง ์ฐ์ด๋ ์ง์ญ ๋ณ์
โ ๋ฐ๊นฅ์ y์๋ ์ํฅ X
`int x = 20;`
โ ์ด๊ฑด ๋ ๋ฒ์งธ if ๋ธ๋ก ์์์๋ง ์ฐ์ด๋ ์ง์ญ ๋ณ์
โ ๋ฐ๊นฅ์ x์๋ ์ํฅ X
x > 10 ์กฐ๊ฑด โ ํ์ฌ x = 10 โ ๊ฑฐ์ง โ ์คํ ์ ๋จ
๊ฐ์ ์ด๋ฆ์ ๋ณ์ / Global ๋ณ์ / Static ๋ณ์
๊ฐ์ ์ด๋ฆ์ ๋ณ์
#include <stdio.h>
int fun(int n) {
n = n + 1;
return n;
}
int main() {
int n = 10;
n = fun(n);
n = fun(n);
printf("%d", n);
return 0;
}
10
์คํ ๊ฒฐ๊ณผ: 10 ์๋ํ๋ฉด fun(n)์ ํธ์ถํ์ง๋ง, ๋ฆฌํด๊ฐ์ ์ ์ฅํ์ง ์์.
๊ทธ๋์ n์ ๊ณ์ 10์ด๋ค.
์ ์ญ๋ณ์(Global)
#include <stdio.h>
int n = 10; // ์ ์ญ ๋ณ์ ์ ์ธ
int fun(int a) {
n = a + 1;
return n;
}
int main() {
fun(n);
fun(n);
printf("%d", n);
return 0;
}
n ์์น๊ฐ ์ ์ญ(global) ๋ณ์์ด๋ค. ๊ทธ๋์ ํจ์ ๋ด๋ถ์์ n ๋ฐ๋ก ์ ๊ทผํด์ ์์ ๊ฐ๋ฅํ๋ค.
์ ์ ๋ณ์(Static)
#include <stdio.h>
void fun() {
static int a = 10; // static: ํจ์๊ฐ ๋๋๋ ๊ฐ ์ ์ง
int b = 10; // ์ผ๋ฐ ์ง์ญ ๋ณ์: ํจ์ ๋๋๋ฉด ์ด๊ธฐํ๋จ
a++;
b++;
printf("%d, %d\n", a, b);
}
int main() {
fun(); // ์ฒซ ํธ์ถ
fun(); // ๋ ๋ฒ์งธ ํธ์ถ
fun(); // ์ธ ๋ฒ์งธ ํธ์ถ
return 0;
}
11, 11
12, 11
13, 11
๋ณ์ | ํน์ฑ | ๋์ |
a | static ๋ณ์ | ํจ์๊ฐ ๋๋๋ ๊ฐ์ด ์ ์ง๋จ, ํธ์ถ๋ง๋ค + 1 |
b | ์ผ๋ฐ ์ง์ญ ๋ณ์ | ๋งค๋ฒ 10์ผ๋ก ์ด๊ธฐํ, ํธ์ถ๋ง๋ค +1 โ ํญ์ 11 |

๋ ผ๋ฆฌ์ฐ์ฐ์ ์ฃผ์์ฌํญ
#include <stdio.h>
int main() {
int x = 10, y = 20;
if (x++ >= 11 && y++ > 20) {
printf("T = x: %d, y: %d\n", x, y);
} else {
printf("F = x: %d, y: %d\n", x, y);
}
return 0;
}
F = x: 11, y: 20
if (x++ >= 11 && y++ > 20) ์ผ๋ ์ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋ฉด ๋ค๋ ํ๊ฐ โ
โ
&& (๋
ผ๋ฆฌ AND) ์ฐ์ฐ์:
์์ด ๊ฑฐ์ง์ด๋ฉด ๋ค๋ ํ๊ฐํ์ง ์์ (short-circuit)
if (x >= 10 && y > 20)
์ ์กฐ๊ฑด x >= 10์ด false๋ฉด
โ y > 20์ ๋ณด์ง ์๊ณ ๊ฑด๋๋
โ
|| (๋
ผ๋ฆฌ OR) ์ฐ์ฐ์:
์์ด ์ฐธ์ด๋ฉด ๋ค๋ ํ๊ฐํ์ง ์์ (short-circuit)
if (x >= 10 || y > 20)
์ ์กฐ๊ฑด x >= 10์ด true๋ฉด
โ y > 20์ ๋ณด์ง ์๊ณ ๊ฑด๋๋
์ฐ์ฐ์ | ์ ์กฐ๊ฑด์ด false์ผ๋ | ์ ์กฐ๊ฑด์ด true์ผ๋ |
&& | ๋ค ์กฐ๊ฑด ํ๊ฐ โ | ๋ค ์กฐ๊ฑด ํ๊ฐ โญ |
|| | ๋ค ์กฐ๊ฑด ํ๊ฐ โญ | ๋ค ์กฐ๊ฑด ํ๊ฐ โ |
๋นํธ์ฐ์ฐ์

โ ๋นํธ์ฐ์ฐ ํ ๋ 0์ด ์๋ ๋ชจ๋ ๊ฐ์ ์ฐธ์ด๋ค (-1๋ ์ฐธ)
์กฐ๊ฑด๋ฌธ(Else-if) ์ฃผ์์ฌํญ
if ์กฐ๊ฑด1:
์คํ๋ฌธ1
elif ์กฐ๊ฑด2:
์คํ๋ฌธ2
elif ์กฐ๊ฑด3:
์คํ๋ฌธ3
else:
๊ธฐ๋ณธ์คํ๋ฌธ
์กฐ๊ฑด ์ค ๋งจ ์ฒ์ true๊ฐ ๋๋ ๋ธ๋ก ํ๋๋ง ์คํ๋ผ์.
๋๋จธ์ง else if, else๋ ๊ฑด๋๋
#include <stdio.h>
int main() {
int num = 7;
if (num > 10) {
printf("10๋ณด๋ค ํฌ๋ค\n");
} else if (num > 5) {
printf("5๋ณด๋ค ํฌ๋ค\n");
} else if (num > 0) {
printf("0๋ณด๋ค ํฌ๋ค\n");
} else {
printf("0 ์ดํ์ด๋ค\n");
}
return 0;
}
5๋ณด๋ค ํฌ๋ค
num > 10์ false
num > 5๋ true โ ์ฌ๊ธฐ์ ์คํ๋๊ณ ์ข
๋ฃ
๋ค์ ์๋ ์กฐ๊ฑด (num > 0)๋ true์ง๋ง, ์ ๋ ์คํ๋์ง ์์
๋ฐ๋ฉด if๋ง ์ฐ๋ฉด?
if (num > 10) {
// ...
}
if (num > 5) {
// ...
}
์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ์กฐ๊ฑด์ ๊ฐ๊ฐ ๊ฒ์ฌํ๋ค.
์ฆ, ์ฐธ์ธ ์กฐ๊ฑด์ ๋ชจ๋ ์คํ๋๋ค.
๋ฐ๋ณต๋ฌธ(for) ์ฃผ์์ฌํญ
#include <stdio.h>
int main() {
int n, sum = 0;
n = 3;
for (int i = 1; i <= n; sum = sum + i, i++) {
// ๋น ๋ธ๋ก, ์๋ฌด ๋์ ์์
}
printf("%d", sum);
return 0;
}
i ๋จผ์ ์ฆ๊ฐํ๊ณ sum์ ๋ํ๊ธฐ
n = 3
s = 0 2 5 9
i = 1 2 3 4
'ETC > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

์ ์ญ๋ณ์
#include <stdio.h> int main() { int x = 10, y = 10; if (x > 5) { y = 20; printf("x: %d, y: %d\n", x, y); } if (x > 9) { x = 20; printf("x: %d, y: %d\n", x, y); } if (x > 10) { x = 10; y = 20; printf("x: %d, y: %d\n", x, y); } printf("x: %d, y: %d\n", x, y); return 0; }
x: 10, y: 20
x: 20, y: 20
x: 10, y: 20
x: 10, y: 20
์ง์ญ๋ณ์
#include <stdio.h> int main() { int x = 10, y = 10; if (x > 5) { int y = 20; // ์ง์ญ ๋ณ์ y (main์ y์๋ ๋ค๋ฆ) printf("x: %d, y: %d\n", x, y); // x:10, y:20 } if (x > 9) { int x = 20; // ์ง์ญ ๋ณ์ x (main์ x์๋ ๋ค๋ฆ) printf("x: %d, y: %d\n", x, y); // x:20, y:10 } if (x > 10) { x = 10; y = 20; printf("x: %d, y: %d\n", x, y); } printf("x: %d, y: %d\n", x, y); // x:10, y:10 return 0; }
x: 10, y: 20
x: 20, y: 10
x: 10, y: 10
๋ณ์ ๋ฒ์ (์ค์ฝํ)
int y = 20;
โ ์ด๊ฑด if ๋ธ๋ก ์์์๋ง ์ฐ์ด๋ ์ง์ญ ๋ณ์
โ ๋ฐ๊นฅ์ y์๋ ์ํฅ X int x = 20;
โ ์ด๊ฑด ๋ ๋ฒ์งธ if ๋ธ๋ก ์์์๋ง ์ฐ์ด๋ ์ง์ญ ๋ณ์
โ ๋ฐ๊นฅ์ x์๋ ์ํฅ X
x > 10 ์กฐ๊ฑด โ ํ์ฌ x = 10 โ ๊ฑฐ์ง โ ์คํ ์ ๋จ
๊ฐ์ ์ด๋ฆ์ ๋ณ์ / Global ๋ณ์ / Static ๋ณ์
๊ฐ์ ์ด๋ฆ์ ๋ณ์
#include <stdio.h> int fun(int n) { n = n + 1; return n; } int main() { int n = 10; n = fun(n); n = fun(n); printf("%d", n); return 0; }
10
์คํ ๊ฒฐ๊ณผ: 10 ์๋ํ๋ฉด fun(n)์ ํธ์ถํ์ง๋ง, ๋ฆฌํด๊ฐ์ ์ ์ฅํ์ง ์์.
๊ทธ๋์ n์ ๊ณ์ 10์ด๋ค.
์ ์ญ๋ณ์(Global)
#include <stdio.h> int n = 10; // ์ ์ญ ๋ณ์ ์ ์ธ int fun(int a) { n = a + 1; return n; } int main() { fun(n); fun(n); printf("%d", n); return 0; }
n ์์น๊ฐ ์ ์ญ(global) ๋ณ์์ด๋ค. ๊ทธ๋์ ํจ์ ๋ด๋ถ์์ n ๋ฐ๋ก ์ ๊ทผํด์ ์์ ๊ฐ๋ฅํ๋ค.
์ ์ ๋ณ์(Static)
#include <stdio.h> void fun() { static int a = 10; // static: ํจ์๊ฐ ๋๋๋ ๊ฐ ์ ์ง int b = 10; // ์ผ๋ฐ ์ง์ญ ๋ณ์: ํจ์ ๋๋๋ฉด ์ด๊ธฐํ๋จ a++; b++; printf("%d, %d\n", a, b); } int main() { fun(); // ์ฒซ ํธ์ถ fun(); // ๋ ๋ฒ์งธ ํธ์ถ fun(); // ์ธ ๋ฒ์งธ ํธ์ถ return 0; }
11, 11
12, 11
13, 11
๋ณ์ | ํน์ฑ | ๋์ |
a | static ๋ณ์ | ํจ์๊ฐ ๋๋๋ ๊ฐ์ด ์ ์ง๋จ, ํธ์ถ๋ง๋ค + 1 |
b | ์ผ๋ฐ ์ง์ญ ๋ณ์ | ๋งค๋ฒ 10์ผ๋ก ์ด๊ธฐํ, ํธ์ถ๋ง๋ค +1 โ ํญ์ 11 |

๋ ผ๋ฆฌ์ฐ์ฐ์ ์ฃผ์์ฌํญ
#include <stdio.h> int main() { int x = 10, y = 20; if (x++ >= 11 && y++ > 20) { printf("T = x: %d, y: %d\n", x, y); } else { printf("F = x: %d, y: %d\n", x, y); } return 0; }
F = x: 11, y: 20
if (x++ >= 11 && y++ > 20) ์ผ๋ ์ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋ฉด ๋ค๋ ํ๊ฐ โ
โ
&& (๋
ผ๋ฆฌ AND) ์ฐ์ฐ์:
์์ด ๊ฑฐ์ง์ด๋ฉด ๋ค๋ ํ๊ฐํ์ง ์์ (short-circuit)
if (x >= 10 && y > 20)
์ ์กฐ๊ฑด x >= 10์ด false๋ฉด
โ y > 20์ ๋ณด์ง ์๊ณ ๊ฑด๋๋
โ
|| (๋
ผ๋ฆฌ OR) ์ฐ์ฐ์:
์์ด ์ฐธ์ด๋ฉด ๋ค๋ ํ๊ฐํ์ง ์์ (short-circuit)
if (x >= 10 || y > 20)
์ ์กฐ๊ฑด x >= 10์ด true๋ฉด
โ y > 20์ ๋ณด์ง ์๊ณ ๊ฑด๋๋
์ฐ์ฐ์ | ์ ์กฐ๊ฑด์ด false์ผ๋ | ์ ์กฐ๊ฑด์ด true์ผ๋ |
&& | ๋ค ์กฐ๊ฑด ํ๊ฐ โ | ๋ค ์กฐ๊ฑด ํ๊ฐ โญ |
|| | ๋ค ์กฐ๊ฑด ํ๊ฐ โญ | ๋ค ์กฐ๊ฑด ํ๊ฐ โ |
๋นํธ์ฐ์ฐ์

โ ๋นํธ์ฐ์ฐ ํ ๋ 0์ด ์๋ ๋ชจ๋ ๊ฐ์ ์ฐธ์ด๋ค (-1๋ ์ฐธ)
์กฐ๊ฑด๋ฌธ(Else-if) ์ฃผ์์ฌํญ
if ์กฐ๊ฑด1: ์คํ๋ฌธ1 elif ์กฐ๊ฑด2: ์คํ๋ฌธ2 elif ์กฐ๊ฑด3: ์คํ๋ฌธ3 else: ๊ธฐ๋ณธ์คํ๋ฌธ
์กฐ๊ฑด ์ค ๋งจ ์ฒ์ true๊ฐ ๋๋ ๋ธ๋ก ํ๋๋ง ์คํ๋ผ์.
๋๋จธ์ง else if, else๋ ๊ฑด๋๋
#include <stdio.h> int main() { int num = 7; if (num > 10) { printf("10๋ณด๋ค ํฌ๋ค\n"); } else if (num > 5) { printf("5๋ณด๋ค ํฌ๋ค\n"); } else if (num > 0) { printf("0๋ณด๋ค ํฌ๋ค\n"); } else { printf("0 ์ดํ์ด๋ค\n"); } return 0; }
5๋ณด๋ค ํฌ๋ค
num > 10์ false
num > 5๋ true โ ์ฌ๊ธฐ์ ์คํ๋๊ณ ์ข
๋ฃ
๋ค์ ์๋ ์กฐ๊ฑด (num > 0)๋ true์ง๋ง, ์ ๋ ์คํ๋์ง ์์
๋ฐ๋ฉด if๋ง ์ฐ๋ฉด?
if (num > 10) { // ... } if (num > 5) { // ... }
์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ์กฐ๊ฑด์ ๊ฐ๊ฐ ๊ฒ์ฌํ๋ค.
์ฆ, ์ฐธ์ธ ์กฐ๊ฑด์ ๋ชจ๋ ์คํ๋๋ค.
๋ฐ๋ณต๋ฌธ(for) ์ฃผ์์ฌํญ
#include <stdio.h> int main() { int n, sum = 0; n = 3; for (int i = 1; i <= n; sum = sum + i, i++) { // ๋น ๋ธ๋ก, ์๋ฌด ๋์ ์์ } printf("%d", sum); return 0; }
i ๋จผ์ ์ฆ๊ฐํ๊ณ sum์ ๋ํ๊ธฐ
n = 3
s = 0 2 5 9
i = 1 2 3 4