728x90
논리 연산자
논리 연산자는 논리곱(&&), 논리합(||), 배타적 논리합(^) 그리고 논리 부정(!) 연산을 수행한다. 주로 흐름 제어문인 조건문(if), 반복문(for, while) 등에서 이용된다.
구분 | 연산식 | 결과 | 설명 | ||
AND (논리곱) |
true | && 또는 & |
true | true | 피연산자 모두가 true일 경우에만 true |
true | false | false | |||
false | true | false | |||
false | false | false | |||
OR (논리합) |
true | || 또는 | |
true | true | 피연산자 중 하나만 true이면 true |
true | false | true | |||
false | true | true | |||
false | false | false | |||
XOR (배타적 논리합) |
true | ^ | true | false | 피연산자가 하나는 true이고 다른 하나가 false일 경우에만 true |
true | false | true | |||
false | true | true | |||
false | false | false | |||
NOT (논리 부정) |
! | true | false | 피연산자의 논리값을 변경 | |
false | true |
&& 와 & : 논리합
산출 결과는 같지만 연산 과정은 다르다. &&는 앞의 피연산자가 false라면 뒤의 피연산자를 평가하지 않고 바로 false를 산출한다. &는 모두 평가해서 산출한다.
|| 와 | : 논리곱
논리합과 같으며 ||는 앞의 피연산자가 true라면 뒤의 피연산자를 평가하지 않고 true를 산출하지만 |는 모두 평가 후 산출한다.
예제 코드
package ch03.sec07;
public class LogicalOperatorExample {
public static void main(String[] args) {
int charCode = 'A';
if ((65 <= charCode) & (charCode <= 90)) {
System.out.println("대문자");
}
if ((97 <= charCode) & (charCode <= 122)) {
System.out.println("소문자");
}
if ((48 <= charCode) & (charCode <= 57)) {
System.out.println("0~9 숫자");
}
int val = 6;
if ((val % 2 == 0) | (val % 3 == 0)) {
System.out.println("2또는 3의 배수");
}
boolean result = (val % 2 == 0) || (val % 3 == 0);
System.out.println("result : " + result);
if (!result) {
System.out.println("2또는 3의 배수가 아니다");
}
}
}
728x90
'IT > Java' 카테고리의 다른 글
[Java] 대입 연산자 (0) | 2024.02.21 |
---|---|
[Java] 비트 논리 연산자 / 비트 이동 연산자 (0) | 2024.02.21 |
[Java] 비교 연산자 (0) | 2024.02.21 |
[Java] 나눗셈 연산 후 NaN과 Infinity (0) | 2024.02.21 |
[Java] 오버플로우와 언더플로우 (0) | 2024.02.20 |