20.3 if 조건문과 비교 연산자 사용하기
이제 if 조건문과 비교 연산자를 함께 사용해보겠습니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
comparison_operator_if_integer.c
#include <stdio.h> int main() { int num1 = 10; if (num1 == 10) // num1이 10과 같은지 검사 printf("10입니다.\n"); if (num1 != 5) // num1이 5와 다른지 검사 printf("5가 아닙니다.\n"); if (num1 > 10) // num1이 10보다 큰지 검사 printf("10보다 큽니다.\n"); if (num1 < 10) // num1이 10보다 작은지 검사 printf("10보다 작습니다.\n"); if (num1 >= 10) // num1이 10보다 크거나 같은지 검사 printf("10보다 크거나 같습니다.\n"); if (num1 <= 10) // num1이 10보다 작거나 같은지 검사 printf("10보다 작거나 같습니다.\n"); return 0; }
실행 결과
10입니다. 5가 아닙니다. 10보다 크거나 같습니다. 10보다 작거나 같습니다.
if의 조건식에 비교 연산자를 사용했습니다. 지금까지 if는 0일 때 거짓, 0이 아닐 때 참으로 동작한다고 설명했습니다. 여기서는 비교 연산자의 결과에 따라 if가 동작하여 문자열이 출력됩니다. num1이 10이므로 결과는 다음과 같습니다.
- num1 == 10: num1이 10과 같으므로 "10입니다."가 출력됩니다.
- num1 != 5: num1이 5와 다르므로 "5가 아닙니다."가 출력됩니다.
- num1 > 10: num1이 10보다 크지 않으므로 아무것도 출력되지 않습니다.
- num1 < 10: num1이 10보다 작지 않으므로 아무것도 출력되지 않습니다.
- num1 >= 10: num1이 10보다 크거나 같으므로 "10보다 크거나 같습니다."가 출력됩니다.
- num1 <= 10: num1이 10보다 작거나 같으므로 "10보다 작거나 같습니다."가 출력됩니다.
정수뿐만 아니라 실수나 문자도 비교 연산자로 비교할 수 있습니다.
comparison_operator_if_real_number.c
#include <stdio.h> int main() { float num1 = 0.1f; char c1 = 'a'; if (num1 >= 0.09f) // num1이 실수 0.09보다 크거나 같은지 검사 printf("0.09보다 크거나 같습니다.\n"); if (c1 == 'a') // c1이 문자 a와 같은지 검사 printf("a입니다.\n"); if (c1 == 97) // c1이 정수 97과 같은지 검사 printf("97입니다.\n"); if (c1 < 'b') // c1이 문자 b보다 작은지 검사 printf("b보다 작습니다.\n"); return 0; }
실행 결과
0.09보다 크거나 같습니다. a입니다. 97입니다. b보다 작습니다.
문자 자료형은 c1 == 'a'처럼 문자 그대로 비교할 수 있습니다. 또한, 문자 자료형은 정수이므로 숫자로 직접 비교하거나 대소 관계를 비교할 수도 있습니다.
단, 실수는 반올림 오차가 발생하므로 == 연산자로 정확한 값을 비교하는 것은 위험합니다. 실수 비교하는 방법은 '부록 4. 실수 자료형의 오차'를 참조하세요.