C 언어 if 조건문 사용 방법

if문이란 조건식의 결과에 따라 중괄호 { } 로 묶어놓은 블록을 실행하거나 실행하지 않도록 할 수 있는 문법입니다.

조건식에는 true 또는 false값을 산출할 수 있는 연산식이나 boolean변수가 올 수 있습니다.

조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않습니다.

C언어에서 0은 false(거짓)로 0이 아닌 나머지 값은 모두 true(참)로 인식합니다.

 

if문

if문 작성 방법을 먼저 알아보겠습니다.

if(조건식){
실행문….
}

 

작성한 조건식에 해당하는 경우에 중괄호 { } 로 묶어놓은 실행문이 처리됩니다.

#include <stdio.h>
int main(void) {

	char grade = 'A';
	int score = 80;
	
	if(grade=='A' && score>=80){
		printf("A타입 시험에 합격하셨습니다.\n");
	}
	printf("수고하셨습니다.");
}

 

결과

A타입 시험에 합격하셨습니다.
수고하셨습니다.

 

grade변수의 값이 A이고 score변수의 값이 80일 경우 조건식 grade==’A’ && score>=80은 true가 됩니다.

작성한 조건과 일치하기 때문에 중괄호 블록의 실행문이 실행되어 A타입 ‘시험에 합격하셨습니다.’라는 문구가 출력됩니다.

‘수고하셨습니다.’라는 문구는 조건문 실행 부분인 중괄호 { } 에 포함되지 않았기 때문에 항상 출력됩니다.

 

 

if – else문

if – else문은 if문의 조건식의 결과에 따라 조건식이 true이면 if문의 블록이 실행되고 조건식이 false이면 else문이 실행되는 조건문입니다.

작성 방법을 확인해보겠습니다.

if(조건식){
조건식이 참(true)일때 실행될 실행문
}else{
조건식이 거짓(false)일때 실행될 실행문
}

 

if문에서 사용했던 예제를 활용해 else문도 작성해보겠습니다.

#include <stdio.h>
int main(void) {

	char grade = 'A';
	int score = 70;
	
	if(grade=='A' && score>=80){
		printf("A타입 시험에 합격하셨습니다.\n");
	}else{
		printf("A타입 시험에 불합격하셨습니다.\n");
	}
	printf("수고하셨습니다.");
}

 

결과

A타입 시험에 불합격하셨습니다.
수고하셨습니다.

 

score변수의 값이 70점 이기 때문에 grade값과 상관없이 조건식 grade==’A’ && score>=80이 false가 됩니다.

if문에 작성한 조건문과 일치하지 않기 때문에 else의 실행문이 실행되어 A타입 ‘시험에 불합격하셨습니다.’라는 문구가 출력됩니다.

‘수고하셨습니다.’라는 문구는 if문과 else문에도 포함되지 않기 때문에 항상 출력됩니다.

 

 

if – else if – else문

if 조건문 에는 여러개 조건문을 작성할 수 있습니다.

if문 { } 중괄호 블록 끝에 else if를 붙이면 됩니다.

작성 방법을 확인해보겠습니다.

if(조건식1){
조건식1이 참(true)일때 실행될 실행문
}else if(조건식2){
조건식2이 참(true)일때 실행될 실행문
}else{
조건식이 모두 거짓(false)일때 실행될 실행문
}

 

else if문의 수에는 제한이 없으며 여러 개의 조건문을 위에서부터 읽어나가 가장 먼저 true가 되는 블록만 실행하고 if문을 종료하게 됩니다.

모든 실행 조건이 맞지 않는 경우 else문을 실행합니다.

#include <stdio.h>
int main(void) {

	int score = 70;
	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");
	}
	printf("수고하셨습니다.");
}

 

결과

C등급입니다.
수고하셨습니다.

 

score변수의 값이 70이기 때문에 3번째 조건식인 score>=70에 만족하여 ‘C등급입니다.‘라는 문구를 출력합니다.

하나의 조건문을 실행했기 때문에 다른 if문은 실행하지 않습니다.

수고하셨습니다.’라는 문구는 if문과 else if, else문에도 포함되지 않기 때문에 항상 출력됩니다.

댓글