C언어 IF 조건문2

지환·2021년 12월 29일
0

C언어

목록 보기
4/37
post-thumbnail

IF ~ Else문 ~ 조건문

조건문을 사용하다 보면 상황이 서로 반대되는 조건을 나열해야 할 때가 있다.
예를 들어, 비가 오면 우산을 들고 간다. // 비가 오지 않으면 운동화를 신고 나간다. 와 같은 표현이다.
이 표현에서 '비가 오면' 이라는 조건과 '비가 오지 않으면'이라는 조건은 서로 반대되는 조건이기 때문에 '비가 오면 우산을 들고 가고 그렇지 않으면 운동화를 신고 나간다' 라는 표현을 사용하여 조건과 반대 조건을 한 번에 사용하는 것이 더 편리 할 것이다.
이 상황을 if조건문으로 표현하면 이와같다.

  • if(비가 온다) 우산을 들고 나간다.
  • if(비가 오지 않는다) 운동화를 신고 나간다.

이번에는 프로그램에서 'data가 10이면 data에 0을 저장하고, data가 아니면, data를 1를 증가시킨다. 라는 조건을 어떻게 표현하면 좋을지 생각하자.

  • if(data == 10) data = 0; // data ==10이 참이면, data에 0를 저장함.
  • if(data != 10) data++; // data != 10 이 참이면, data값을 1증가시킴.

하지만 이와 같은 과정은 너무 비효율적이다. 따라서 다음과 같이 반대 조건을 한 번에 표현하는 if~else~형식으로 변경할 수 있다.

if(data == 10) data = 0;
else data++; //data가 10이 아닌 경우에 수행한다.

이렇게 if~else문을 사용하면 조건 수식은 한 번만 수행한다.

단일 if ~else문

다음 예시를 보자,

#include <stdio.h>

void main()
{
	int data = 5;
	if (data > 3) printf("data는 3보다 큰 수입니다. \n");
	else printf("data는 3보다 작거나 같은 수입니다. \n");
	printf("작업 종료\n");
}

복합 if ~ else~문

또 다른 예시를 보자.

#include <Stdio.h>

void main()
{

	int score = 95;
	char grade;
	if (score >= 90) {
		grade = 'A';
		printf("점수는 %d이고 등급은 %c입니다.\n", score, grade);
	}
	else {
		grade = 'B';
		printf("점수는 %d이고 등급은 %c입니다.\n", score, grade);
	}
	printf("작업종료\n");

}

결과

  • if문이 단일문장이면 else문도 반드시 단일 문장이어야 한다거나, if문이 복합문장이면 else문도 반드시 복합 문장일 필요는 없다.따라서 다음과 같이 사용할 수도 있다.

<출처 : DO IT C언어 - 김성엽>

profile
아는만큼보인다.

0개의 댓글