IT
자바 논리 연산자(Logical Operators)
1. 논리 연산자 종류
연산자
이름
설명
&&
논리 AND
둘 다 true일 때만 true
`
`
!
논리 NOT
true를 false로, false를 true로
2. 논리 AND (
&&
)
양쪽 조건이 모두 true일 때만 결과가 true입니다.
int age = 25;
boolean isMember = true;
if (age >= 18 && isMember) {
System.out.println("성인 회원입니다.");
}
진리표 (Truth Table)
A
B
A && B
true
true
true
true
false
false
false
true
false
false
false
false
3. 논리 OR (
||
)
양쪽 조건 중 하나라도 true이면 전체 결과는 true입니다.
boolean isAdmin = false;
boolean isManager = true;
if (isAdmin || isManager) {
System.out.println("접근 허용");
}
진리표
| A | B | A || B |
|—––|—––|––––|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
4. 논리 NOT (
!
)
boolean 값을 반전시킵니다.
boolean isLogin = false;
if (!isLogin) {
System.out.println("로그인이 필요합니다.");
}
A
!A
true
false
false
true
5. 결합 사용 예시
복잡한 조건은 여러 논리 연산자를 조합하여 사용할 수 있습니다.
int age = 30;
boolean isMember = true;
boolean hasCoupon = false;
if ((age >= 18 && isMember) || hasCoupon) {
System.out.println("할인 가능");
}
6. 단축 평가 (Short-circuit Evaluation)
자바는 단축 평가를 수행합니다.
이는 불필요한 평가를 생략하여 성능을 높이고, 예외를 방지합니다.
예시:
&&
(왼쪽이 false면 오른쪽은 평가하지 않음)
if (false && methodCall()) {
// methodCall()은 호출되지 않음
}
예시:
||
(왼쪽이 true면 오른쪽은 평가하지 않음)
if (true || methodCall()) {
// methodCall()은 호출되지 않음
}
이 기능은 null pointer 예외 방지에 유용하게 사용됩니다.
String name = null;
if (name != null && name.length() > 0) {
System.out.println("이름 있음");
}
name != null이 false이면 name.length()는 평가되지 않으므로 예외가 발생하지 않습니다.
7. 괄호 사용 권장
복잡한 조건일수록 괄호로 조건의 우선순위를 명확히 표현하는 것이 좋습니다.
if ((score >= 70 && score <= 100) || isAdmin) {
System.out.println("접근 가능");
}
8. 요약
연산자
의미
설명
&&
논리 AND
둘 다 true여야 전체 true
`
`
!
논리 NOT
true → false, false → true
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.