본문 바로가기
컴퓨터 프로그래밍/c 언어 (c programming language)

C 언어 - 조건문

by JaeBaek 2020. 9. 26.

condition (wikimedia)

조건문

 조건문은 제어문으로 사용자가 지정한 조건의 결과에 따라 수행할 문장을 결정합니다. 이전에 배운 연산자를 이용해서 작성을 할 수 있고, 중괄호( '{ }' ) 를 사용하여 구조를 세울 수 있습니다.

 

■ 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

댓글