본문 바로가기
프로그래밍/JAVA

초보 자바 프로그래밍(11) - 논리연산자 (Logical Operators)

by 머니테크리더 2023. 5. 1.
반응형

논리 연산자 대표 이미지
논리 연산자 대표 이미지

🔖 INDEX

     

     

    논리연산자 (Logical Operators)

    논리 연산자는 논리적인 조건을 만족하는지 검사하는 연산자입니다. 자바에서는 다음과 같은 논리 연산자를 제공합니다.

     

    1. AND 연산자 (&&) : 두 피연산자가 모두 true일 때 true를 반환합니다. 하나라도 false라면 false를 반환합니다.

    boolean a = true;
    boolean b = false;
    boolean result = (a && b); // false

     

    2. OR 연산자 (||) : 두 피연산자 중 하나라도 true라면 true를 반환합니다. 두 피연산자가 모두 false일 때 false를 반환합니다.

    boolean a = true;
    boolean b = false;
    boolean result = (a || b); // true

     

    3. NOT 연산자 (!) : 피연산자의 논리값을 반대로 바꿉니다. true면 false를, false면 true를 반환합니다.

    boolean a = true;
    boolean result = !a; // false

     

     

    논리 연산자는 논리적인 조건 검사에 많이 사용됩니다. 예를 들어, 다음과 같은 코드를 작성하여 나이가 18세 이상이고 성별이 남자인 경우에만 투표를 할 수 있도록 할 수 있습니다.

    int age = 20;
    char gender = 'M';
    if (age >= 18 && gender == 'M') {
        System.out.println("투표가 가능합니다.");
    } else {
        System.out.println("투표가 불가능합니다.");
    }

     

    논리 연산자를 사용하여 여러 개의 조건을 함께 검사하고, 논리 연산자를 조합하여 복잡한 조건 검사를 수행할 수 있습니다. 주의할 점은, 논리 연산자는 반드시 boolean 타입의 피연산자에 대해서만 사용해야 한다는 것입니다. 그렇지 않으면 컴파일 오류가 발생합니다.

     

    연산자 우선순위

    논리 연산자는 논리적인 조건을 검사하는 연산자로, 논리값(boolean)을 피연산자로 사용합니다. 이 때, 논리 연산자의 피연산자는 우선 순위가 높은 산술 연산자나 비교 연산자와 같은 다른 연산자보다 먼저 계산되어야 합니다.

    산술연산자 > 비교연산자 > 논리연산자 > 대입연산자

     

    논리연산자 우선순위

    자바에서의 논리 연산자의 순서는 NOT(!)가 가장 높은 우선순위를 가지며, 그 다음으로 AND(&&)가, 그리고 OR(||)가 가장 낮은 우선순위를 가집니다. 이 순서를 바꾸고 싶다면 괄호()를 사용하여 연산 순서를 변경할 수 있습니다.

    NOT(!) > AND(&&) > OR(||)

     

     

    예를 들어, 다음 코드에서 AND 연산자가 OR 연산자보다 먼저 계산되기 때문에, AND 연산이 먼저 실행된 후 OR 연산이 실행됩니다.

    boolean a = true;
    boolean b = false;
    boolean c = true;
    if (a && b || c) {
        System.out.println("조건이 참입니다.");
    } else {
        System.out.println("조건이 거짓입니다.");
    }

    위 코드에서는, (a && b)가 먼저 계산되어 false를 반환하고, 그 다음에 c와 OR(||) 연산이 수행되어 true를 반환합니다. 따라서, "조건이 참입니다."가 출력됩니다.

     

    논리 연산자의 우선순위를 변경하고 싶다면 괄호를 사용하여 연산 순서를 변경할 수 있습니다. 예를 들어, 다음 코드는 OR 연산이 먼저 계산되도록 괄호를 사용하여 우선순위를 변경한 예시입니다.

    boolean a = true;
    boolean b = false;
    boolean c = true;
    if (a || (b && c)) {
        System.out.println("조건이 참입니다.");
    } else {
        System.out.println("조건이 거짓입니다.");
    }

    위 코드에서는, b와 c의 AND(&&) 연산이 먼저 수행되어 false를 반환하고, 그 다음에 a와 OR(||) 연산이 수행되어 true를 반환합니다. 따라서, "조건이 참입니다."가 출력됩니다. ​

     

    논리 연산자를 사용할 때, 피연산자의 우선순위를 고려하여 괄호를 사용하는 것이 좋습니다. 그렇지 않으면, 의도치 않은 결과가 발생할 수 있습니다.

     

     

    댓글