IT
자바 논리 연산자(Logical Operators)
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. 논리 연산자 우선순위
자바에서는 다음과 같은 순서로 연산됩니다.
-
! (NOT)
-
&& (AND)
-
|| (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)
예외적 상황에서 사용
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.