C언어: [관계연산자]

황정욱·2022년 10월 14일
0
post-thumbnail

관계연산자는 6개다. <, >, ==, <=, >=, !=
!= 와 ==를 제외한 나머지는 수학시간때 배운 것과 동일하다.

하지만 관계연산자는 관계를 나타내기 때문에 오로지 2가지의 값만 가진다.
True 혹은 False 중 하나만 무조건 하나만 가진다.
True 혹은 False 값 두가지만 가질 수 있는 변수는 bool이다.
이 값은 정수로 표현을 한다.

True --> 1
False --> 0

이 값은 정수로 나타나기 때문에 반환한 값을 정수 혹은 실수타입의 변수에 대입을 하고 연산을 할 수가 있다.

#include <stdio.h>

void main()
{
	// 관계연산자
	int num1 = 10;
	int num2 = 10;
	int num3 = 11;
	int num4 = 0;
	bool isTrue = false;
	isTrue = num1 > num2;	// 10 > 10
	printf("%d\n", isTrue);

	isTrue = num1 < num3;	// 10 < 11
	printf("%d\n", isTrue);

	isTrue = num1 >= num2;	// 10 >= 10
	printf("%d\n", isTrue);

	isTrue = num1 <= num2;	// 10 <= 10
	printf("%d\n", isTrue);

	isTrue = num1 == num2;	// 10 == 10
	printf("%d\n", isTrue);

	isTrue = num1 != num2;	// 10 != 10
	printf("%d\n", isTrue);

	printf("\n\n");

	int aaa = num1 > num2;
	bool bbb = num1 > num2;
	aaa += 10;
	bbb += 10;
	printf("%d\n", aaa);
	printf("%d\n", bbb);

	printf("\n\n");

	aaa = num1 < num2;
	bbb = num1 < num2;
	aaa += 10;
	bbb += 10;
	printf("%d\n", aaa);
	printf("%d\n", bbb);

	

	getchar();
}
  1. bool 타입의 변수 isTrue를 만들고 false로 초기화시켰다.
  2. 첫 4개의 관계연산자는 수학시간에 배운 지식을 사용하면 이해할 수 있다.
  3. == 은 = 과 전혀 다르다.
    영어로 해석하면 이해하기 더 편하다.
    예시:
    num1 = num2; --> num1 is num2 로 해석
    num1 == num2; --> num1 is equal to num2로 해석
    그렇기 때문에 isTrue = num1 == num2; 는 true(1)를 반환한다.
  4. != 또한 영어로 해석하면 편하다. =앞에 있는 !은 Not를 의미한다. 그렇기 때문에 != 를 영어로 읽으면 not equal to다.
    예시:
    num1 != num1; --> num1 is not equal to num2
    때문에 이때 isTrue = num1 != num2; 는 false(0)을 반환한다.

위에서 설명했듯이 bool 값은 정수로 나타나기 때문에 관계연산후 정수 혹은 실수데이터타입의 변수에 대입 할 수 있다.

하지만 bbb라는 bool타입에 증감연산자를 사용하면 에러가 나지는 않지만 1(True) 또는 0(False) 값만 가지게 되어서 연산은 무의미하다.

profile
C언어, C#, 그리고 유니티

0개의 댓글