2022. 2. 19. 10:57ㆍC
조건과 조건문
5편인 연산자 편에서 우리는 C언어에 논리 연산자로 조건의 참/거짓 여부를 확인할 수 있다는 사실을 배웠습니다.
이 논리 연산자를 사용해서 조건(명제의 참/거짓 여부)에 따라 각각 다른 코드가 실행될 수 있게 하는 구문이 있는데, 이러한 구문을 조건문이라고 합니다.
C언어에는 5가지 조건문이 있습니다.
- if - 주어진 명제가 참(1)이면 중괄호 내의 코드가 실행됨.
- else - if문 뒤에 붙으며, if문 안의 명제가 거짓(0)이면 중괄호 내의 코드가 실행됨.
- else if - if문 또는 else if문 뒤에 붙으며, 자신의 위에 있는 조건문의 명제가 거짓이고 자신이 제시한 명제가 참이면 중괄호 내의 코드가 실행됨.
- switch - 괄호 ( ) 안에 들어간 정수형 변수가 어떤 값이냐에 따라 각 case의 코드가 실행됨. 모든 case가 없다면 default의 코드가 실행됨.
이제 각 구문에 대해 하나하나 자세히 봅시다.
if 문
주어진 명제가 참(1)이면 중괄호 내의 코드가 실행됩니다.
아래의 코드는 if문의 기본형입니다.
if (조건) {
조건이 참이라면 실행되는 코드
}
아래의 코드는 if문을 사용한 예시입니다.
이 코드에서 if문은 10이 5보다 큰지를 확인합니다.
만약 조건이 참이라면, 참이라는 내용의 문자열을 출력합니다.
if (10 > 5) {
printf("10이 5보다 큽니다. ");
}
변수의 대소 관계도 같은 방법으로 확인해 볼수 있습니다.
int a = 10;
int b = 5;
if (a > b) {
printf("%d이(가) %d보다 큽니다. ", a, b);
}
10이(가) 5보다 큽니다.
a는 10, b는 5라는 값을 저장하고 있으므로, a와 b를 비교했을 때는 5보다 큰 10이 더 크다고 출력됩니다.
else 문
if문 뒤에 붙으며, if문 안의 명제가 거짓(0)이면 중괄호 내의 코드가 실행됩니다.
다음 코드는 else 문의 기본형입니다.
if (조건) {
조건이 참이면 실행되는 코드
} else {
조건이 거짓이면 실행되는 코드
}
아래의 코드는 else 문을 사용한 예시입니다.
이 코드에서 if문과 else문은 5가 10보다 큰지 작은지를 확인합니다.
if (5 > 10) {
printf("5가 10보다 큽니다. ");
} else {
printf("10이 5보다 큽니다. ");
}
10이 5보다 큽니다.
5가 10보다 작기 때문에 10이 5보다 크다고 출력됩니다.
else if 문
if문 또는 else if문 뒤에 붙으며, 자신의 위에 있는 조건문의 명제가 거짓이고 자신이 제시한 명제가 참이면 중괄호 내의 코드가 실행됩니다.
아래의 코드는 else if 문의 기본형입니다.
if (조건) {
조건이 참이면 실행되는 코드
} else if (조건) {
if문의 조건이 거짓이고 else if문의 조건이 참이면 실행되는 구문
} else {
모든 조건이 거짓이면 실행되는 구문
}
else if 문은 여러 번 중첩될 수 있습니다.
아래의 코드는 else if 문을 사용한 예시입니다.
int timeOfDay = 15;
if (time > 0) {
printf("좋은 아침!");
} else if (time > 18) {
printf("좋은 낮!");
} else if (time > 21) {
printf("좋은 저녁!");
} else {
printf("좋은 밤!");
}
좋은 낮!
switch 문
괄호 ( ) 안에 들어간 정수형 변수가 어떤 값이냐에 따라 각 case의 코드가 실행됩니다. 모든 case가 없다면 default의 코드가 실행됩니다.
아래의 코드를 보세요.
if (day == 1)
{
printf("월요일");
}
else if (day == 2)
{
printf("화요일");
}
else if (day == 3)
{
printf("수요일");
}
else if (day == 4)
{
printf("목요일");
}
else if (day == 5)
{
printf("금요일");
}
else if (day == 6)
{
printf("토요일");
}
else
{
printf("일요일");
}
위와 같은 코드는 if, else if, else 로 표현하기엔 너무 번거롭습니다.
그래서 C 언어에는 switch 문이 있습니다.
위의 코드를 switch 문을 사용해 작성하면 다음과 같습니다.
int day = 4;
switch (day) {
case 1:
printf("월요일");
break;
case 2:
printf("화요일");
break;
case 3:
printf("수요일");
break;
case 4:
printf("목요일");
break;
case 5:
printf("금요일");
break;
case 6:
printf("토요일");
break;
case 7:
printf("일요일");
break;
default:
printf("주말 좋아");
break;
}
훨씬 간편해졌습니다.
break 키워드
만약 한 개의 case를 감지하여 안의 코드를 실행하다가, break 키워드를 만나면 더 이상 아래의 코드를 실행하지 않고 switch 문을 나갑니다. break 키워드가 없다면 실행 시 switch 문의 다음 코드로 넘어가지 않습니다.
int a = 1;
switch (a) {
case 1:
printf("a는 1");
}
printf("\n다음 코드");
와 같은 코드를 작성하면 실행결과는
a는 1
입니다.
"다음 코드"라는 문자열이 출력되게 하려면 break 키워드를 써줘야합니다.
int a = 1;
switch (a) {
case 1:
printf("a는 1");
break;
}
printf("\n다음 코드");
a는 1
다음코드
default 키워드
아래 코드의 출력 결과를 맞춰 보세요.
int a = 5;
switch (a) {
case 1:
printf(1);
break;
case 2:
printf(2);
break;
}
실행 결과는 공백입니다.
a가 5인데 5에 대응하는 case가 없기 때문이죠.
이럴 때 사용하는 것이 default 키워드입니다.
default 키워드는 값에 대응하는 case가 없을 경우 실행되는 코드입니다.
int a = 5;
switch (a) {
case 1:
printf(1);
break;
case 2:
printf(2);
break;
default:
printf("a는 1또는 2가 아니에요");
}
a는 1또는 2가 아니에요!
default 키워드는 switch 문의 맨 마지막에 와야 하며, break 키워드가 불필요합니다.
다음 편에서는 반복문에 대해서 알아보겠습니다.
'C' 카테고리의 다른 글
8. C 배열 (0) | 2022.05.17 |
---|---|
7. C 반복문 (0) | 2022.02.21 |
5. C 연산자 (0) | 2022.02.17 |
4. C 변수와 자료형 (0) | 2022.02.16 |
3. C 출력 (글자 띄우기) - printf() 함수 (0) | 2022.02.16 |