이번엔 제어문의 조건문에 대해서 포스팅 해보도록 하겠습니다.
컴퓨터 프로그램은 명령어가 서술된 순서에 따라 무조건 위에서 아래로 실행되는데,
조건을 지정해서 진행 순서를 변경할 수 있다.
이렇게 프로그램의 순서를 변경할 때 사용하는 명령문을 제어문이라고 한다.
if 문, switch~case, for문, while 문, break, continue, goto 문 등이 있다.
1) 조건문 [ if, if else, switch~case]
2) 반복문 [ for, while, do while ]
3) 점프문 [ break, continue, goto, return ]
1) 조건문
if문은 조건식의 결과에 따라 중괄호 { } 로 묶어놓은 블록의 실행여부가 결정되는 조건문이다.
조건문을 정의하자면 조건에 따라 문장(각각의 조건에 해당되는)을 실행하는 문장이라고 할 수 있다.
1. 단일 if 문 : 한 가지 조건을 주고 그 조건에 맞을 때만 조건문 내부의 코드를 수행한다.
2. if ~ else 문 : 한 가지 조건을 주고 그 조건에 맞지 않을 때 수행해야 할 코드까지 작성한다.
(보통 둘 중 하나의 코드를 수행할 때 사용한다.)
3. 다중 if문 : 연관된 여러 조건을 비교할 때 사용한다.
조건식에는 True 또는 False 값을 산출할 수 있는 연산식이나 boolean 변수가 올 수 있다.
※ boolean 타입이란?
- 간단히 bool 타입이라고도 한다.
한국말로는 논리 자료형이라고 하는 이 타입은 참(True) 또는 거짓(False)을 나타내는 자료형이다.
-bool 타입 사용법
- stdbool.h 헤더 파일을 include 한다.
- bool, true, false 모두 예약어처럼 사용한다.
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool b1 = true;
if (b1 == true)
printf("참\n");
else
printf("거짓\n");
return 0;
}
결괏값 : 참 |
cs |
#include로 stdbool.h 헤더 파일을 포함한 뒤 자료형 bool과 값 true, flase를 사용하면 된다.
여기서는 변수 b1에 true를 할당하였고, if 조건문으로 b1이 true인지 비교하였다.
물론 같은 true 이므로 "참"이 출력된다.
4. switch ~case 문 : if문은 조건이 참과 거짓인 경우의 두 가지만 판별하여 제어를 이동해야 하므로
분기할 문장이 여러 곳이면 중첩 if를 여러 번 사용하는 불편함이 있었다.
switch 문을 사용하면 분기할 곳이 여러 곳이여도 간단하게 처리할 수 있다.
if문 예제
1) 숫자가 짝수인지 홀수인지 판별하는 프로그램 작성 (순서도 포함)
#include <stdio.h>
int main(){
int num1;
scanf("%d", &num1);
if ( num1 % 2 == 0 )
printf("짝수입니다.\n");
else
printf("홀수입니다.\n");
}
|
cs |

2) 1~10까지의 숫자 중에서 짝수의 합과 홀수의 합을 각각 구하는 프로그램 작성 (순서도 포함)
( if문과 for문 사용)
#include <stdio.h>
int main(){
int a = 10, even = 0, odd = 0;
for (int i = 1; i <= a; ++i)
{
if (i % 2 == 0)
even += i;
else
odd += i;
}
printf("%d, %d\n", even, odd);
}
|
cs |

3) 사용자가 두 수를 입력했을 때 큰 값이 출력되는 프로그램 작성
#include <stdio.h>
int main(){
int num1, num2, max;
scanf("%d %d", &num1, &num2);
if ( num1 > num2 )
max = num1;
else
max = num2;
printf("두 값 중 큰 값은 %d 입니다.", max);
}
|
cs |

4) 점수에 대한 학점을 출력하는 프로그램 작성 - 다중 if 문 사용
순서도를 그리기엔 힘들어서 넘어가기루..
#include <stdio.h>
int main(){
int jum;
scanf("%d", &jum);
if (jum > 100 || jum < 0)
printf("잘못 입력하셨습니다.");
else if (jum >= 90)
printf("입력하신 점수는 'A' 등급 입니다.");
else if (jum >= 80)
printf("입력하신 점수는 'B' 등급 입니다.");
else if (jum >= 70)
printf("입력하신 점수는 'C' 등급 입니다.");
else if (jum >= 60)
printf("입력하신 점수는 'D' 등급 입니다.");
else
printf("입력하신 점수는 'F' 등급 입니다.");
}
|
cs |
5) if문을 사용하여 간단한 계산기 프로그램을 작성
#include <stdio.h>
int main(){
int num1, num2, hap;
char sign;
printf(" 사칙연산 계산기 입니다.\n");
printf("첫 번째 값을 입력하세요. ==> ");
scanf("%d", & num1);
printf("(1)덧셈\n(2)뺄셈\n(3)곱셈\n(4)나눗셈\n번호를 입력해주세요.==>");
scanf("%d", &sign);
printf("두 번째 값을 입력하세요. ==>");
scanf("%d", & num2);
if (sign == 1){
hap = num1 + num2;
printf("%d + %d = %d\n", num1, num2, hap);
}
if (sign == 2){
hap = num1 - num2;
printf("%d - %d = %d\n", num1, num2, hap);
}
if (sign == 3){
hap = num1 * num2;
printf("%d * %d = %d\n", num1, num2, hap);
}
if (sign == 4){
hap = num1 / num2;
printf("%d / %d = %d\n", num1, num2, hap);
}
}
|
cs |
결과
switch ~ case 문
기본 형태는 이러하다.
#include <stdio.h>
int main(){
switch (식){
case 1:
실행할 문장1:
break;
case 2:
실행할 문장2:
break;
case 3:
실행할 문장3:
break;
default:
실행할 문장4:
break;
}
}
|
cs |
defualt는 if 문의 else 역할이라고 생각하면 된다.
#include <stdio.h>
int main(){
int Menu;
printf("(1)소주\t\t(2)맥주\t\t(3)양주\t\t(4)와인\n");
printf("원하는 주류를 선택하세요.\n");
scanf("%d", &Menu);
switch (Menu)
{
case 1:
printf("소주를 선택했습니다.\n");
break;
case 2:
printf("맥주를 선택했습니다.\n");
break;
case 3:
printf("양주를 선택했습니다.\n");
break;
case 4:
printf("와인을 선택했습니다.\n");
break;
default:
printf("메뉴판에 없는 번호입니다.\n");
break;
}
return 0;
}
|
cs |
break; 는 점프문을 포스팅할 때 다루어보겠다.
제어문의 조건문 끝
'Algorithm > C언어' 카테고리의 다른 글
[ 7. C언어의 기본 - 기타제어문 ] (0) | 2021.10.11 |
---|---|
[ 6. C언어의 기본 - 제어문의 반복문 ] (0) | 2021.10.06 |
[ 4. C언어의 기본 - 연산자 ] (0) | 2021.09.30 |
[ 3. C언어의 기본 - 변수 & 자료형 ] (0) | 2021.09.30 |
[ 2. C언어의 기본 - 서식문자 ] (0) | 2021.09.30 |