IMG-LOGO
공지사항 :

자바 논리 연산자(Logical Operators)

lmkfox - 2025-06-26 06:43:28 18 Views 0 Comment

1. 자바의 논리 연산자 종류

연산자

명칭

설명

예시

&&

논리 AND

두 조건이 모두 true일 때만 true

(a > 0 && b > 0)

`

`

논리 OR

!

논리 NOT

조건의 반대 값 반환

!(a > 0)

&

비트 AND / 논리 AND (모두 평가)

둘 다 true일 때 true, 모두 평가

(a > 0 & b > 0)

`

`

비트 OR / 논리 OR (모두 평가)

둘 중 하나가 true면 true, 모두 평가

^

논리 XOR

한 쪽만 true일 때 true

(a > 0 ^ b > 0)


2. 주요 논리 연산자 설명

2.1 

&&

 (논리 AND, short-circuit AND)

  • 앞 조건이 false이면 뒤 조건은 평가하지 않음 (short-circuit)

  • 전체 결과는 모든 조건이 참이어야 true

int a = 10;
int b = 5;
if (a > 0 && b > 0) {
    System.out.println("두 수 모두 양수입니다.");
}

2.2 

||

 (논리 OR, short-circuit OR)

  • 앞 조건이 true이면 뒤 조건은 평가하지 않음 (short-circuit)

  • 전체 결과는 하나라도 참이면 true

int age = 15;
if (age < 13 || age > 65) {
    System.out.println("우대 대상입니다.");
}

2.3 

!

 (논리 NOT)

  • 조건의 참/거짓을 반전

boolean isLogin = false;
if (!isLogin) {
    System.out.println("로그인이 필요합니다.");
}


3. 비트 연산과의 차이: 

&

|

자바에서는 &, | 연산자를 boolean 조건에도 사용할 수 있지만, &&, ||와는 다릅니다.

연산자

short-circuit 여부

사용 예

&&

조건이 false면 이후 생략

&

아니오

조건이 false라도 이후 평가

// short-circuit AND
if (x != 0 && 10 / x > 1) { ... } // 안전

// 일반 AND (&)는 모두 평가 -> 에러 가능
if (x != 0 & 10 / x > 1) { ... }  // x가 0이면 예외 발생


4. 

^

 (XOR: 배타적 논리합)

  • 양쪽 피연산자가 서로 다를 때만 true

boolean a = true;
boolean b = false;
System.out.println(a ^ b);  // true

System.out.println(true ^ true);   // false
System.out.println(false ^ false); // false


5. 논리 연산자 우선순위

자바에서는 다음과 같은 순서로 연산됩니다.

  1. ! (NOT)

  2. && (AND)

  3. || (OR)

괄호를 사용하여 우선순위를 명확히 하는 것이 좋습니다.

boolean result = true || false && false;  // &&가 먼저 수행
// 위는 true || (false && false) -> true

boolean result2 = !(true && false);  // NOT가 먼저 수행
// -> !(false) -> true


6. 논리 연산자와 조건문 활용 예

int age = 25;
boolean isStudent = false;

if (age >= 18 && !isStudent) {
    System.out.println("성인 비학생입니다.");
}


7. 요약

연산자

설명

특징

&&

논리 AND

모두 true일 때만 true

`

`

!

논리 NOT

boolean 값을 반대로

&

일반 AND (전체 평가)

성능 손해 및 오류 가능성 있음

`

`

일반 OR (전체 평가)

^

논리 XOR (서로 다르면 true)

예외적 상황에서 사용


댓글