- AND 연산자
: 조건이 모두 참이면 참
jshell> true && true
$1 ==> true
jshell> true && false
$2 ==> false
jshell> false && true
$3 ==> false
jshell> false && false
$4 ==> false
- OR 연산자
: 조건이 하나라도 참이면 참. 모두 거짓이어야 거짓.
jshell> true || true
$5 ==> true
jshell> true || false
$6 ==> true
jshell> false || true
$7 ==> true
jshell> false || false
$8 ==> false
- XOR 연산자
: 피연산자가 서로 상이해야 참. 서로 같으면 거짓.
jshell> true ^ true
$9 ==> false
jshell> true ^ false
$10 ==> true
jshell> false ^ true
$11 ==> true
jshell> false ^ false
$12 ==> false
- && 연산자와 & 연산자의 차이
- 예제) && 연산
jshell> int i = 10
i ==> 10
jshell> int j = 15
j ==> 15
jshell> j > 15 && i++ > 5
$3 ==> false
jshell> i
j ==> 10 //i값 변화 x
jshell> j
i ==> 15
- 예제) & 연산
jshell> int i = 10
i ==> 10
jshell> int j = 15
j ==> 15
jshell> j > 15 & i++ > 5
$8 ==> false
jshell> i
i ==> 11 //i값 변화 o
jshell> j
j ==> 15
- && 연산과 & 연산 후 i값이 다른 이유
&& 연산자는 단축 회로 연산자이다.
단축 회로 연산자는 수식 자체가 거짓이면 평가 자체를 하지 않는다. 어차피 결과가 거짓이기 때문이다.
따라서 j > 15 자체가 거짓이기 때문에 i++가 실행되기 전에 false값이 반환된다.
반면 & 연산자는 하나가 거짓임을 알아도 다 실행되기 때문에 i값이 1 증가된다.
* || 연산자와 | 연산자도 같은 관계를 가진다.
'Java' 카테고리의 다른 글
| [java] BigDecimal: 정확한 부동소수 계산 (0) | 2023.06.01 |
|---|---|
| [java] 자료형 data type / 형변환 (0) | 2023.06.01 |
| 생성자와 객체 생성 (0) | 2023.05.31 |
| 캡슐화, 추상화 개념 및 차이 (0) | 2023.05.31 |
| [java] eclipse에서 디버깅하는 방법 (0) | 2023.05.31 |