조건문
조건문은 제어문으로 사용자가 지정한 조건의 결과에 따라 수행할 문장을 결정합니다. 이전에 배운 연산자를 이용해서 작성을 할 수 있고, 중괄호( '{ }' ) 를 사용하여 구조를 세울 수 있습니다.
■ if 문
if 문은 가장 기본적인 조건문으로서 조건식이 참인 경우에 실행을 할 조건과 문장으로 구성이 됩니다. 조건식이 거짓이면 if문을 벗어나 다음 문장으로 실행 흐름을 변경합니다.
if 문의 기본 구조 | if (조건식){ 조건식이 참일 때 실행할 문장들; } |
이러한 조건식에는 이전에 배운 관계연산자나 논리연산자를 사용하여 코드를 작성할 수 있습니다.
ex) 관계 연산자를 사용한 if문
#include <stdio.h>
int main(void)
{
int a=1;
int b=2;
if (a<b){
printf("%d는%d보다 큽니다.",a,b);
}
}
※ reuslt
1는2보다 큽니다.
■ if~else 문
위에서 사용한 if문은 조건식이 참인 경우만 고려하여 작업을 수행한 것을 알 수 있습니다. 하지만 거짓인 경우를 포함하고 싶다면 어떻게 해야할까요? 바로 if~else문을 사용하면 됩니다. 기본 형식과 동작 구조는 아래와 같습니다.
if~else 문의 기본 형식 | if (조건식) 조건식이 참(true)일 때 실행 문장; else 조건식이 거짓(false)일 때 실행 문장; |
ex) 숫자 비교 문제
#include <stdio.h>
int main(void)
{
int a,b;
printf("숫자 입력 a : ");
scanf("%d",&a);
printf("숫자 입력 b : ");
scanf("%d",&b);
if (a>b)
printf("%d는%d보다 크다.",a,b);
else
printf("%d는 %d보다 작다.",a,b);
}
※ result
숫자 입력 a : 2
숫자 입력 b : 3
2는 3보다 작다.
■ if~else if~else 문
위 if~else문은 하나의 조건에 대해 참인 경우와 거짓인 경우를 선택할 수 있었습니다. 하지만 더 추가적인 조건을 넣고 싶다면 if~else if~else문을 사용합니다.
if~else if~else 문의 기본 형식 |
if (조건식1) 조건식1이 참(true)일 때 실행 문장; else if (조건식2) 조건식2가 참(true)일 때 실행 문장; else if (조건식3) 조건식3이 참(true)일 때 실행 문장; else 위 조건을 만족하지 않는 나머지 일 때 실행 문장; |
ex) 숫자 비교 문제
#include <stdio.h>
int main(void)
{
int a,b;
printf("숫자 입력 a : ");
scanf("%d",&a);
printf("숫자 입력 b : ");
scanf("%d",&b);
if (a>b)
printf("%d는%d보다 크다.",a,b);
else if (a==b)
printf("%d는 %d와 같다.",a,b);
else
printf("%d는 %d 보다 작다.",a,b);
}
※ result
숫자 입력 a : 3
숫자 입력 b : 3
3는 3와 같다.
■ switch 문
switch 문은 다중 선택문을 통해 하나의 조건식으로 많은 경우의 수를 처리할 수 있는 함수입니다. switch문은 조건식을 검사하고 조건식과 일치하는 case문으로 이동을 합니다. 그리고 case 내의 문장을 실행하다가 break문이나 switch문의 끝을 만나면 switch문을 벗어납니다.
switch 문의 기본 형식 |
swirch (조건식){ case 값1: 조건식의 결과가 값1과 같을 때 실행할 문장 break; case 값2: 조건식의 결과가 값2와 같을 때 실행할 문장 break; default: 조건식에 일치하는 값이 없을 때 실행문; } |
ex) switch 문 ( 1과 2만을 출력하는 프로그램 작성)
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("숫자 입력 a : ");
scanf("%d",&a);
switch (a){
case 1:
printf("입력하신 숫자는 1입니다.");
break;
case 2:
printf("입력하신 숫자는 2입니다.");
break;
default:
printf("다른 숫자를 입력해주세요.");
}
}
※ result
숫자 입력 a : 2
입력하신 숫자는 2입니다.
Exercise
두 개의 숫자와 사칙 연산 기호를 입력받아, 연산 기호에 따라 해당하는 연산을 수행하는 프로그램을 switch문을 사용하여 작성하라. 예를들어 5+9라고 입력하면 '덧셈 결과는 14입니다.'를 출력하도록 만들라.
#include <stdio.h>
int main(void)
{
int a,b;
char c;
printf("숫자+사칙연산+숫자를 입력하시오.\n");
scanf("%d%c%d",&a,&c,&b);
switch (c){
case '+':
printf("%d%c%d=%d",a,c,b,a+b);
break;
case '-':
printf("%d%c%d=%d",a,c,b,a-b);
break;
case '*':
printf("%d%c%d=%d",a,c,b,a*b);
break;
case '/':
printf("%d%c%d=%.2f",a,c,b,(float)a/b);
break;
default:
printf("다시 입력해주세요.");
}
}
※ result
숫자+사칙연산+숫자를 입력하시오.
3/8
3/8=0.38
'컴퓨터 프로그래밍 > c 언어 (c programming language)' 카테고리의 다른 글
C 언어 - 함수 (0) | 2020.09.27 |
---|---|
C 언어 - 반복문(Loop) (0) | 2020.09.26 |
C 언어 - 표준 입출력 (0) | 2020.09.26 |
C 언어 - 연산자(operator) (0) | 2020.09.26 |
C 언어 - 변수와 자료형 (0) | 2020.09.26 |
댓글