IT/Java

[Java] 논리 연산자

Huitopia 2024. 2. 21. 11:12
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