Conditional Statements, ์กฐ๊ฑด๋ฌธ
์กฐ๊ฑด๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ์ฌ์ฉ๋๋ค.
์ฌ์ฉ์์ ์ ๋ ฅ ํน์ ํน์ ๊ฐ์ ์ผ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ค.
๊ทธ๋ด ๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ if, else
๋ฌธ์ ์ฌ์ฉํ๊ณค ํ๋ค.
if statements
์์ ๊ทธ๋ฆผ์ if ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด์ ๋ฐ๊ฟ๋ณด๋๋ก ํ์.
#include <stdio.h>
int main() {
printf("๋ช ํ๋
์ธ๊ฐ? \n");
int grade = 0;
scanf("%d", &grade);
if(grade == 3) {
printf("3 ํ๋
ํ์์
๋๋ค.");
}else if(grade == 4) {
char sexuality;
printf("๋จ์ฑ : 'm' \t ์ฌ์ฑ : 'f'\n");
scanf(" %c", &sexuality);
if(sexuality == 'm' && grade == 4) {
printf("4 ํ๋
์ ๋จ์ฑ ํ์");
}else if(sexuality == 'f' && grade == 4) {
printf("4 ํ๋
์ ์ฌ์ฑ ํ์");
}else {
printf("์
๋ ฅ์ด ์๋ชป ๋์์ต๋๋ค.");
}
}else {
printf("๋์ ํ๋
์ด ์๋๋๋ค.");
}
}
์ฌ๊ธฐ์ ์ฃผ์ํด์ผํ ์ฌํญ์ด ์๋ค.
15๋ฒ์งธ ์ค์์ scanf ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
ํ์ง๋ง ์์ ๊ณต๋ฐฑ ๋ฌธ์ ํ๋๊ฐ ์กด์ฌํ๋ค.
์ด ์ด์ ๋ 14๋ฒ์งธ ์ค์ ์กด์ฌํ๋ \n
์ด์ค์ผ์ดํ ์ํ์ค ๋๋ฌธ์ %c
๊ฐ ์ด๋ฏธ ๊ฐ์ด ๋ค์ด๊ฐ๋ฒ๋ฆฌ๊ฒ ๋๋ค.
๊ทธ๋์ ๊ณต๋ฐฑ์ ์ด์ฉํด์ ํ ์นธ์ ๋์์ค ๊ฒ์ด๋ค.
Switch Statements, ๋ถ๊ธฐ๋ฌธ
๋ถ๊ธฐ๋ฌธ (Switch Case) ์ ์กฐ๊ฑด๋ฌธ๊ณผ ๋น์ทํ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
๋ถ๊ธฐ๋ฌธ ๋ํ ์กฐ๊ฑด๋ฌธ๊ณผ ๊ฐ์ด ์ฌ์ฉ์์ ์ ๋ ฅ์ด๋ ํน์ ๊ฐ์ ์ผ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ค.
Switch Case ๋ฌธ์ ์ฌ์ฉํ ๋๋ 2๊ฐ์ง์ ์ฌ์ฉ์ ์ ์ํด์ผ ํ๋ค.
- if ๋ฌธ์ else์ ํด๋นํ๋ ๊ฒ์ด ๋ฐ๋ก default ๋ธ๋ก์ด๋ค.
- ๊ฐ๊ฐ์ case ๊ฐ ์ข ๋ฃ๋ ๋๋ break๋ฅผ ๊ผญ ์จ์ค์ผ ํ๋ค.
๋ง์ฝ break๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ค์ ์กฐ๊ฑด๊น์ง ํจ๊ป ํฌํจํ๋๋ฐ, ์ด๋ฅผ ์ด์ฉํด์ ||
๋ก์ง์ ๊ตฌํํ ์ ์๋ค.
#include <stdio.h>
int main() {
int grade;
printf("ํ๋
์ ์
๋ ฅํ์ธ์\n");
scanf(" %d", &grade);
switch(grade) {
case 1: {
printf("1ํ๋
ํ์์
๋๋ค.");
break;
}
case 2: {
printf("2ํ๋
ํ์์
๋๋ค.");
break;
}
case 3: {
printf("3ํ๋
ํ์์
๋๋ค.");
break;
}
case 4: {
printf("4ํ๋
ํ์์
๋๋ค.");
break;
}
case 5:
case 6: {
printf("์กธ์
์์ ํ์์
๋๋ค");
break;
}
default: {
printf("์กธ์
์ ์
๋๋ค.");
break;
}
}
}
๊ทธ๋ผ If์ Switch๋ ์๋ก ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋๋ฐ, ๋ชจ๋ ๋๊ฐ์๊น?
์๋๋ค. ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ผ๊ณ ํ๋ค๋ฉด ๋ฐ๋ก Jump ์ ์ฐจ์ด์ด๋ค.
if ๋ฌธ์์๋ ์กฐ๊ฑด์ด ๋ง์กฑํ๋์ง ํ๋จํ๊ธฐ ์ํด์ ๊ฐ๊ฐ์ ์กฐ๊ฑด branch ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ ๋ฐ๋ฉด switch ๋ฌธ์์๋ ํน์ ์์น๋ก jump ํ๊ฒ ๋์ด ์ฑ๋ฅ์ ์กฐ๊ธ์ ์ด์ ์ด ์กด์ฌํ๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋์์ธ ํจํด์์ ๋งน๋ชฉ์ ์ธ Switch Case ๋ Anti Pattern ์ด๋ฏ๋ก ์ฌ์ฉ์ ์ฃผ์ํ๋๋ก ํด์ผํ๋ค.
Loop Statements, ๋ฐ๋ณต๋ฌธ
๋ฐ๋ณต๋ฌธ์๋ 2๊ฐ์ง์ ์ฌ์ฉ์ด ์กด์ฌํ๋ค.
- for๋ฌธ
- while ๊ณผ do-while ๋ฌธ
๊ฐ์ฅ ์ ๋ช ํ ๊ตฌ๊ตฌ๋จ์ ํ ๋ฒ ์ง๋ณด๋๋ก ํ์
(feat. ์ฃผ์์ฑ์ GuguClass)
for statements
#include <stdio.h>
int main() {
int i;
int num;
printf("๋ช ๋จ์ ์ถ๋ ฅํ์๊ฒ ์ต๋๊น?");
scanf("%d", &num);
for (i = 1; i <=9; i++) {
printf("\n %d * %d = %d", num, i ,i * num);
}
return 0;
}
while statements
#include <stdio.h>
int main() {
int i = 1;
int num;
printf("๋ช ๋จ์ ์ถ๋ ฅํ์๊ฒ ์ต๋๊น?");
scanf("%d", &num);
while (i <=9) {
printf("\n %d * %d = %d", num, i ,i * num);
i++;
}
return 0;
}
do-while statements
#include <stdio.h>
int main() {
int i = 1;
int num;
printf("๋ช ๋จ์ ์ถ๋ ฅํ์๊ฒ ์ต๋๊น?");
scanf("%d", &num);
do {
printf("\n %d * %d = %d", num, i ,i * num);
i++;
} while (i <=9);
return 0;
}
๋๊ธ