#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 |