0
0
JavaHow-ToBeginner · 3 min read

How to Use Logical Operators in Java: Syntax and Examples

In Java, logical operators like && (AND), || (OR), and ! (NOT) combine or invert boolean expressions. Use && to check if both conditions are true, || to check if at least one is true, and ! to reverse a condition's result.
📐

Syntax

Logical operators in Java work with boolean values and expressions. Here are the main operators:

  • &&: Logical AND - true if both sides are true
  • ||: Logical OR - true if at least one side is true
  • !: Logical NOT - reverses the boolean value
java
boolean a = true;
boolean b = false;

boolean andResult = a && b;  // false
boolean orResult = a || b;   // true
boolean notResult = !a;      // false
💻

Example

This example shows how to use logical operators to check multiple conditions and print results accordingly.

java
public class LogicalOperatorsExample {
    public static void main(String[] args) {
        boolean isSunny = true;
        boolean haveUmbrella = false;

        if (isSunny && !haveUmbrella) {
            System.out.println("It's sunny and you don't have an umbrella.");
        }

        if (isSunny || haveUmbrella) {
            System.out.println("You can go outside.");
        }

        if (!isSunny && haveUmbrella) {
            System.out.println("It's not sunny but you have an umbrella.");
        } else {
            System.out.println("Check the weather and plan accordingly.");
        }
    }
}
Output
It's sunny and you don't have an umbrella. You can go outside. Check the weather and plan accordingly.
⚠️

Common Pitfalls

Common mistakes when using logical operators include:

  • Using & or | instead of && or || for boolean logic, which can cause unexpected behavior because & and | are bitwise operators.
  • Not using parentheses to group conditions, leading to wrong evaluation order.
  • Confusing assignment = with equality == inside conditions.
java
public class PitfallExample {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;

        // Wrong: Using bitwise & instead of logical &&
        if (a & b) {
            System.out.println("This won't print because a & b is false.");
        }

        // Correct: Using logical &&
        if (a && b) {
            System.out.println("This also won't print because a && b is false.");
        }

        // Wrong: Missing parentheses
        if (a || b && false) { // Evaluates as a || (b && false)
            System.out.println("Be careful with operator precedence.");
        }

        // Better with parentheses
        if ((a || b) && false) {
            System.out.println("This won't print because of grouping.");
        }
    }
}
Output
Be careful with operator precedence.
📊

Quick Reference

OperatorDescriptionExampleResult
&&Logical ANDtrue && falsefalse
||Logical ORtrue || falsetrue
!Logical NOT!truefalse

Key Takeaways

Use && to check if both conditions are true.
Use || to check if at least one condition is true.
Use ! to reverse a boolean condition.
Avoid using bitwise operators (&, |) for logical checks.
Use parentheses to control the order of evaluation.