본문 바로가기
개발/C, C++

[C/C++] 관계 연산자

by 77monkey 개발자 2023. 9. 8.
반응형

관계 연산자는 조건문에서 많이 사용됩니다. 그렇기 때문에 잘 알아두시면 도움이 될 것으로 보입니다.

 

관계 연산자

관계 연산자는 2개의 값을 비교하여 비교 결과에 따라 참(true) 또는 거짓(false)을 반환하는 연산자입니다. 

  • 등호(==): 두 값이 같으면 참을 반환합니다. 
  • 부등호(!=): 두 값이 서로 다르면 참을 반환합니다. 
  • 크다(>): 왼쪽 변수가 오른쪽 변수보다 크면 참을 반환합니다. 
  • 작다(<): 왼쪽 변수가 오른쪽 변수보다 작으면 참을 반환합니다. 
  • 크거나 같다(>=): 왼쪽 변수가 오른쪽 변수보다 크거나 같으면 참을 반환합니다. 
  • 작거나 같다(<=): 왼쪽 변수가 오른쪽 변수보다 작거나 같으면 참을 반환합니다. 

관계 연산자 예시

관계 예시자 예시는 다음과 같습니다. 결과를 미리 예측하고 아래 결과를 확인해 봅시다.

#include <stdio.h>

int main() {
	int a = 0;
	int b = 0;
	int c = 1;
	int d = 2;
	int e = 3;

	printf("a == b => %d\n", a == b);
	printf("a != c => %d\n", a != c);
	printf("a > d => %d\n", a > d);
	printf("a < e => %d\n", a < e);
	printf("a >= b => %d\n", a <= b);
	printf("a <= c => %d\n", a <= c);

	return 0;
}

결과는 다음과 같습니다. 

a == b => 1
a != c => 1
a > d => 0
a < e => 1
a >= b => 1
a <= c => 1

 

관계 연산자 주의사항

관계 연산자는 어려울 부분이 없지만, 실수하기 쉬운 부분이 있습니다. 바로 ==와 =를 실수로 바꿔 쓰는 경우입니다. 

예를 들면 아래와 같은 코드를 짜려고 했습니다. 

#include <stdio.h>

int main() {
	int a = 0;

	if (a == 0) {
		printf("a is 0\n");
	}
	return 0;
}

a가 0이랑 같은지 확인하고 그에 따라서 a is 0을 출력하고자 했습니다. 하지만 실수로 아래와 같이 코드를  짜면 전혀 다른 결과가 나옵니다. 

#include <stdio.h>

int main() {
	int a = 0;

	if (a = 0) {
		printf("a is 0\n");
	}
	return 0;
}

이 경우에는 아무 것도 출력하지 않습니다. 바로 a라는 변수에 0을 대입하는 식으로 들어가서 a가 0이기 때문에 조건식이 false가 되기 때문입니다. 따라서 ==를 =로 잘못 작성하는 실수를 하지 않으시길 바랍니다.

 

마무리

관계 연산자는 조건문에 의해서 많이 사용되는 연산자입니다. 주의사항을 잊지 마시고 사용하시길 바랍니다. 

 

반응형

'개발 > C, C++' 카테고리의 다른 글

[C/C++] 비트 연산자  (0) 2023.09.11
[C/C++] 논리 연산자  (0) 2023.09.09
[C/C++] 증감 연산자(++, --)  (0) 2023.09.07
[C/C++] 대입 연산자  (0) 2023.09.06
[C/C++] 산술 연산자  (0) 2023.09.05