IMG-LOGO
공지사항 :

자바 논리 연산자(Logical Operators)

lmkfox - 2025-07-04 06:43:32 17 Views 0 Comment

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


댓글