6.4 관계 연산자(Relational Operators)
< | is less than |
<= | is less than or equal to |
== | is equal to |
>= | is greater than or equal |
> | is greater than |
!= | is not equal to |
나머지는 우리가 아는 것과 비슷한데, 같다와 다르다는 좀 상이하므로 한 번 다시 보도록 하자.
간단한 사용 예.
#include <stdio.h>
int main()
{
int n = 0;
while (n++ < 5)
printf("%d", n);
}
또 다른 사용 예
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
char c = 'A';
while (c != 'Z')
printf("%c", c++);
}
이때까지 배운 것으로 관계연산자 응용 예시
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
const double PI = 3.1415926535897932384626433832795;
double guess = 0.0;
printf("Input pi : ");
scanf("%lf", &guess);
while (fabs(guess - PI) > 0.01)
{
printf("Fool! Try again.\n");
scanf("%lf", &guess);
}
printf("Good!");
}
PI에 근접한 값인지 확인하는 코드이다.
여기서 주의할 점은 while문의 속성이다.
while문은 참일 때, 반복하고 거짓일 때 종료된다.
조건문에는 PI와 근접한 값을 넣었을 때, while문이 종료되어야 하고 3.14와 먼 값을 넣었을 때는 while문은 반복되어야한다.
보충 설명
<math.h>의 ‘fabs’함수
‘fabs’함수는 어떤 실수를 절대값으로 return하는 함수다.
#include <stdio.h>
#include <math.h>
int main()
{
double a = -2.56;
double value = fabs(a);
printf("%f", value);
}
여기서 value는 fabs로 인해 절대값을 씌운 2.56000이 리턴된다.
따라서, (fabs(guess - PI) > 0.01)에서 guess에 3.14를 대입했다고 생각하자.
대충 치환을 해주자면
(fabs(3.14 - 3.1415926535897932384626433832795) > 0.01)
(fabs(-0.001592653589….) > 0.01)
(0.001592653589 > 0.01)
여기서 참이 아니므로
while문은 종료된다. (PI와 근접하다는 것과 같다)
여기서는 소수 두 번째 자리까지만 맞춰도 while문은 종료된다.
더 자세한 값을 넣었을 때, 루프를 종료하고 싶으면 0.01 부분을 0.001로 바꾸거나 더 낮은 소수 자리수를 대입하면 된다.
출처: 홍정모의 따라배우는 C언어
강의 외의 추가된 것들은 책 그리고 인터넷 조사해서 얻었음
'배운 것들 메모 > 따라 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 6.6 _Bool 자료형(Boolean Data Type) (0) | 2024.10.11 |
---|---|
[홍정모의 따라하며 배우는 C언어] 6.5 사실과 거짓(True & False) (0) | 2024.09.26 |
[홍정모의 따라하며 배우는 C언어] 6.3 진입조건 루프(Entry-Condition Loop) while (0) | 2024.09.26 |
[홍정모의 따라하며 배우는 C언어] 6.1 while 반복 루프에서 scanf()의 반환값 사용하기 (0) | 2024.09.12 |
[홍정모의 따라하며 배우는 C언어] 5.11 자료형 변환(Type conversions) (0) | 2024.09.11 |