6. 논리 연산자

P4·2023년 6월 9일
0
post-thumbnail

논리연산자

  • !(역) <-- 얘는 참을 거짓으로 // 거짓을 참으로 만듬 (뭐라고 불러야할지 모르겠음)

  • &&(곱) <-- and

  • ||(합) <-- or

  • 참은 0이 아닌 모든 수 (보통은 1로 대답함)
    (1을 넣든 10을 넣든 참이지만, 컴퓨터가 답으로 내놓는 참은 1임)

  • 거짓은 당연히 0


bool 자료형

  • bool IsTrue = 123; 이렇게 주면? <-- 얘는 어차피 1이 됨, size는 1byte
bool test_true = 99;

printf("%d\n", test_true); // 이러면 1이 출력됨

! (역)

int truefalse = false;
truefalse = !truefalse;

printf("%d", truefalse); // 이러면 1이 출력됨
  • int test = 100;하고 !으로 뒤집으면 0이 나옴, -100이 안나옴

  • 값 자체를 0을 원점으로 반전시킨다는 뜻이 아니라 boolean 값을 반전시킨다는 뜻이기 때문


&& (곱), (and)

int iTrue = 123 && 456;
printf("%d", iTrue); // 이러면 1이 출력됨
  • 둘중에 하나가 0이면 당연히 0

|| (합), (or)

  • 위랑 다 똑같음, or인거만 빼면

이걸 어디다 쓰냐면...

  • 만약에 어떠한 의미있는 값, hp 999, attack 10 이런 수가 있을때

  • 이 값을 훼손시키지 않으면서 동시에 조건문에 써야하면?

  • 굳이 고민할 필요없이 그냥 저 값을 True, False로 사용할 수 있음 (0만 아니면 True니까)


삼항연산자

  • ?:
int a = left < right ? left : right
/* 옆에 있는 식이 true면? a = left
false면 a = right*/
profile
지식을 담습니다.

0개의 댓글