조건문.. 어떠한 조건을 만족해야 그 안의 내용이 작동하는 문법(?)이다.
조건문에는
if
else if
else
switch
가 있다.
if 의 의미는 만약에라는 뜻이다.
만약 ~~ 라면
~~ 가 조건이 참(true) 일 때를 뜻한다.
int num = 10;
if (num > 0) {
printf("num은 양수입니다.\n");
}
위 코드를 확인해 보면 ; (세미클론)을 사용하지 않는 것을 확인할 수 있다.
이점을 유의해서 작성하자.
위 조건문을 해석하면
만약 num이 0 보다 크다면 { } 안에 있는 내용을 실행시킨다.
라는 의미이다.
( )안에 있는 내용이 조건이고, { } 안에 있는 내용이 조건을 만족할 때 실행할 내용이다.
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90)
printf("A\n");
if (score >= 80)
printf("B\n");
if (score >= 70)
printf("C\n");
if (score >= 60)
printf("D\n");
else
printf("F\n");
return 0;
}
[out]
B
C
D
위 예제는 점수에 따른 등급을 정하는 코드이다.
등급은 하나가 나와야 되는데 여러개가 나온 결과를 볼 수 있다.
위 처럼 조건문들 중 특정 조건이 성립을 하면 다음 조건들은 그냥 넘어가게 코드를 작성할 순 없을까?
그럴때 사용하는 것이 else와 ,else if이다.
먼저 else의 의미를 알아보자.
else란 그렇지 않다면 이란 뜻으로 해석된다.
예제를 들어 말로 표현해보자.
int num = 0;
if (num > 0) {
printf("num은 양수입니다.\n");
} else if (num < 0) {
printf("num은 음수입니다.\n");
} else {
printf("num은 0입니다.\n");
}
num은 0 의 값을 가지고,
만약 num이 0 보다 크다면 { } 내용을 실행시키고,
그렇지 않고 만약 num이 0 보다 작다면 { } 내용을 실행시키고,
그렇지 않다면 { } 내용을 실행시킨다.
와 같이 표현할 수 있다.
위 내용을 바탕으로 if 에서 언급된 문제를 해결 하면 다음과 같다.
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90) {
printf("A\n");
} else if (score >= 80) {
printf("B\n");
} else if (score >= 70) {
printf("C\n");
} else if (score >= 60) {
printf("D\n");
} else {
printf("F\n");
}
return 0;
}
[out]
B
switch는 전환 이라는 뜻이다.
구조는
switch (변수) {
case 값1:
// 변수 == 값1일 때 실행할 코드
break;
case 값2:
// 변수 == 값2일 때 실행할 코드
break;
default:
// 모든 case에 해당하지 않을 때 실행할 코드
}
와 같으며 if 문은 범위나 고정된 값에 따라 내용이 바뀐다면 switch 문은 고정된 값에 따라 내용이 바뀐다.
