본문 바로가기
배운 것들 메모/따라 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 6.4 관계 연산자(Relational Operators)

by 야속한 낭만 2024. 9. 26.

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언어

강의 외의 추가된 것들은 책 그리고 인터넷 조사해서 얻었음