gyumin.log

논리 연산자 - C·Java·파이썬

같은 AND·OR·NOT인데 언어마다 얼굴이 다르다. C는 결과가 숫자 1/0, Java는 true/false, 파이썬은 기호 대신 영어 단어를 쓴다.

C - 결과는 1 / 0

연산자이름설명예시
&&AND둘 다 참이면 참(3 > 1) && (5 > 2) = 1
||OR하나라도 참이면 참(3 > 5) || (5 > 2) = 1
!NOT참이면 거짓, 거짓이면 참!(3 > 5) = 1

C에는 bool 타입이 없어서 참 = 1, 거짓 = 0 정수로 나온다. printf("%d", (3>1) && (5>2))의 답은 “참”이 아니라 1이라고 써야 한다.

Java - 결과는 true / false

연산자이름설명예시
&&AND둘 다 true면 true(3 > 1) && (5 > 2) = true
||OR하나라도 true면 true(3 > 5) || (5 > 2) = true
!NOTtrue면 false, false면 true!(3 > 5) = true

기호는 C와 똑같고, 결과만 boolean(true/false)이다.

Python - 기호 대신 단어

연산자설명예시결과
and두 조건 모두 True이면 TrueTrue and FalseFalse
or하나라도 True이면 TrueTrue or FalseTrue
notTrue를 False로, False를 True로 반전not TrueFalse

파이썬 코드에 &&가 보이면 그 자체가 함정 - ++처럼 파이썬엔 없다.


개념은 하나다: AND는 둘 다, OR는 하나라도, NOT은 반전. 언어별로 다른 건 표기와 결과 형태뿐 - C는 1/0, Java는 true/false, 파이썬은 and/or/not에 True/False.

&&(논리)와 &(비트)는 다른 연산자다 - 그 구분은 비트 연산자(& | ^ ~ << >>) 정리할 때. 연산자 시리즈 앞 편은 노트 대입 연산자.