논리 연산자는 두 피연산자 간의 논리적인 판별을 수행하는 연산자이다.
피연산자는 모두 boolean타입의 데이터만 사용가능하며, 결과값도 boolean타입으로 리턴한다.
&& AND 연산자
피 연산자가 모두 true일 경우에만 true를 반환하고, 아닌 경우는 모두 false를 반환한다
✍입력
boolean a = false;
boolean b = true;
System.out.println("a(false) && a(false) = " + (a && a));
System.out.println("a(false) && b(true) = " + (a && b));
System.out.println("b(true) && a(false) = " + (b && a));
System.out.println("b(true) && b(true) = " + (b && b));
💻출력
|| OR 연산자
피 연산자 중 하나라도 true이면 true를 반환하고, 아니라면 false를 반환한다
✍입력
boolean a = false;
boolean b = true;
System.out.println("a(false) || a(false) = " + (a || a));
System.out.println("a(false) || b(true) = " + (a || b));
System.out.println("b(true) || a(false) = " + (b || a));
System.out.println("b(true) || b(true) = " + (b || b));
💻출력
! NOT연산자
부정의 이미로 값을 역전 시킨다
true일 경우 false를 반환, false일 경우 true를 반환한다.
✍입력
boolean a = false;
boolean b = true;
System.out.println("!a(false) = " + (!a));
System.out.println("!b(true) = " + (!b));
💻출력
^ XOR 연산자
좌우 결과가 다를 경우에 true를 반환하고 같다면 false를 반환한다
✍입력
System.out.println("a(false) ^ a(false) = " + (a ^ a));
System.out.println("a(false) ^ b(true) = " + (a ^ b));
System.out.println("b(true) ^ a(false) = " + (b ^ a));
System.out.println("b(true) ^ b(true) = " + (b ^ b));
💻출력
&과 |을 1개가 아니라 왜 && || 2개씩 사용하는 걸까?
불필요한 연산을 막기 위해서다.
✍입력
int i = 10;
boolean result = i > 9 || i++ > 9;
System.out.println(i);
💻출력
자, 만약에 && ||이 아니라 & | 하나씩 쓰면 어떻게 될 까?
✍입력
int i = 10;
boolean result = i > 9 | i++ > 9;
System.out.println(i);
💻출력
이렇게 결과값이 달라진다.
'개발 > Java' 카테고리의 다른 글
[Java] 조건문 (0) | 2022.12.29 |
---|---|
[Java] 삼항 연산자 (0) | 2022.12.27 |
[Java] 비교 연산자(관계 연산자) (0) | 2022.12.27 |
[JAVA] 복합 대입 연산자 (0) | 2022.12.27 |
[Java] 연산자 (0) | 2022.12.26 |