C언어: [논리연산자]

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

논리연산자는 3개다. &&, ||, !
논리연산자를 사용할때 항상 True와 False를 아용해 연산을 한다.

  1. && --> &&을 기준으로 좌항과 우항이 모두 True일때만 True를 반환한다.
  2. || --> ||을 기준으로 좌항과 우항중 하나라도 True이면 False를 반환한다.
  3. ! --> bool값을 가진 변수앞에 붙이는 용도로 씌이며 현재 bool데이터형의 변수가 가진 값의 반대로 반환한다.
#include <stdio.h>

void main()
{
	// 논리연산자
	int num1 = 10;
	int num2 = 5;
	int num3 = 20;

	bool isTrue = false;
	
	isTrue = (num1 > num2) && (num1 < num3);	// 10 > 5 && 5 < 20
	printf("%d\n", isTrue);

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

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

	isTrue = (num1 < num2) || (num2 > num3);	// 10 < 5 || 5 > 20
	printf("%d\n", isTrue);

	isTrue = !((num1 < num2) || (num2 > num3));	// !(10 < 5 || 5 > 20)
	printf("%d\n", isTrue);

	printf("%d\n", !isTrue);

	getchar();
}

순서대로 살펴보면
1. 좌항 : true, 우항 : true --> true(1) 반환
2. 좌항 : false, 우항 : true --> false(0) 반환
3. 좌항 : false, 우항 : true --> true(1) 반환
4. 좌항 : false, 우항 : false --> false(0) 반환
5. 좌항 : false, 우항 : false --> false(0) 하지만 !을 붙이기 때문에 반대가 되는 true(1)를 반환

마지막 출력문을 현재 isTrue변수의 값이 true이기 때문에 !isTrue를 출력하면 반대되는 false(0)을 출력한다.

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

0개의 댓글