본문 바로가기

프로그래밍 언어/C언어

C언어 - else if, else 문

 

 

#include <stdio.h>

int main() {
	int s;
	s = 85;
	if (s >= 90)
		printf("A");
	if (s >= 80)
		printf("B");
	if (s >= 70)
		printf("C");
	if (s >= 60)
		printf("D");
	if (s < 60)
		printf("F");
}

 

이 코드의 결과를 생각해보자.

 

B 가 출력될거라고 생각한 당신!

 

깊게 다시한번 생각할 필요가 있다.

 

 

이 코드를 설명하자면

 

85가 90 이상인가? 80 이상인가? ··· 60 미만인가?

 

결론적으로 BCD 가 출력된다.

 

 

그렇다면 이 코드와 비교하여 생각해보자.

 

#include <stdio.h>

int main() {
	int s;
	s = 85;
	if (s >= 90)
		printf("A");
	else if (s >= 80)
		printf("B");
	else if (s >= 70)
		printf("C");
	else if (s >= 60)
		printf("D");
	else
		printf("F");

	printf("\nstop");
}

 

이 코드도 BCD 가 출력될 줄 알았지만

 

아쉽게도 아니다.

 

위 코드에서는 B 가 출력된다.

 

 

 

즉 이와같이 해석한다면

 

참이 되는 if의 수행부분만 처리한다.

 

모든 조건에 부합하지않다면 else의 수행부분이 처리된다.

 

 

부등호가 두 개인 아래의 코드를 살펴보자.

 

	#include <stdio.h>

	int main() {
		int s;
		s = 70;
		if (80 <= s < 90)
			printf("T");
		else
			printf("F");
	}

 

70은 80 이상이고 90 미만인가? 에 대한 조건문에 부합하지않기에

 

else 의 수행문인 F 를 출력할 것이다.

 

하지만 T 를 출력한다.

 

이유는 s가 80에서 90사이에 있는 수인가를 물어보는 것이 아니라는 것이다.

 

 

정확한 이유는 연산자를 상세히 알아야하므로

다음 글에서 확인해보자...!ㅎㅎ

 

 

 

 

https://book.naver.com/bookdb/book_detail.nhn?bid=8187381

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 - 논리연산자  (0) 2020.08.17
C언어 - 연산자  (0) 2020.08.12
C언어 - while, do while 반복문  (0) 2020.07.22
C언어 - for 반복문  (0) 2020.07.07
C언어 - 프로그래밍을 위한 간단한 알고리즘  (0) 2020.06.02