WEB/java

OR, AND 논리연산자

고규마 2017. 12. 27. 17:24

논리연산자  (의미 : 또는)

a | b

a || b


무슨 차이가 있을까?

둘 다 같은 의미이다. 

하지만 (차이점) a|b 는 a, b의 값을 평가한다. 즉, a 가 참이라도 b 를 검사한다. 

a||b 의 경우 a 가 참이면 b를 검사하지 않는다. 즉 b 가 단항연산자(++ ,-- 등) 이 있어 검사할 경우와 그렇지 않을 경우에 결과에 차이가 있다. 



마찬가지로 &, && 에도 비슷하다. 


추가로 

&, |  는 논리연산자로만 사용하는 것이라 아니라 비트연산자로도 사용한다. 

a&b : 비트단위의 논리곱

a|b : 비트단위의 논리합