Mingyu Kim

논리 연산자

논리 연산자의 피연산자는 반드시 boolean 타입이어야 하며, 연산 결과 또한 boolean 타입이다.

1. 논리 연산자의 종류

연산자 논리곱/합 설명
&& 또는 & AND (논리곱) 두 피연산자가 모두 true일 때만 true 반환
\|\| 또는 \| OR (논리합) 두 피연산자가 모두 false일 때만 false 반환
^ XOR (배타적 논리합) 두 피연산자가 서로 다를 때만 true 반환
! NOT (논리 부정) truefalse로, falsetrue로 반전

2. 핵심 디테일: 단락 평가 (Short-Circuit Evaluation)

만약 뒤쪽 조건에 에러가 발생할 만한 코드(예: null 체크 등)가 있다면, 단락 평가를 통해 프로그램의 비정상 종료를 막을 수 있다.

String str = null;

// 만약 단락 평가가 없다면 str.length()에서 NullPointerException 발생
if (str != null && str.length() > 0) {
  System.out.println("문자열이 존재함");
}

3. && vs &, || vs | 의 차이

&|는 단락 평가를 하지 않는다.

4. 자바 21과 논리 연산의 활용

자바 21에서 논리 연산자는 조건부 가드(when 절)와 결합하여 더욱 강력하게 쓰인다.

// Java 21 예시
static String test(Object obj) {
  return switch (obj) {
    case String s when s.length() > 5 && s.startsWith("A") -> "A로 시작하는 긴 문자열";
    case String s -> "짧은 문자열";
    default -> "문자열 아님";
  };
}

5. 요약 및 체크포인트