Bird
Raised Fist0
Kotlinprogramming~10 mins

Logical operators (&&, ||, !) in Kotlin - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Logical operators (&&, ||, !)
Start
↓
Evaluate Left Operand
↓
Evaluate Right Operand (if needed)
↓
Apply Operator (&&, ||, !)
↓
Result: true or false
↓
End
Logical operators combine or invert true/false values to produce a final true or false result.
Execution Sample
Kotlin
val a = true
val b = false
val c = a && b
val d = a || b
val e = !a
This code uses logical AND, OR, and NOT operators on boolean variables a and b.
Execution Table
StepExpressionLeft OperandRight OperandOperatorResult
1a && btruefalse&&false
2a || btruefalse||true
3!atrueN/A!false
4EndN/AN/AN/AN/A
💡 All expressions evaluated, results computed.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
atruetruetruetruetrue
bfalsefalsefalsefalsefalse
cuninitializedfalsefalsefalsefalse
duninitializeduninitializedtruetruetrue
euninitializeduninitializeduninitializedfalsefalse
Key Moments - 3 Insights
Why does 'a && b' result in false even though 'a' is true?
Because the AND operator (&&) requires both operands to be true. Since 'b' is false, the whole expression is false (see execution_table step 1).
Why is the right operand not needed for the NOT operator (!)?
The NOT operator (!) only needs one operand to invert its value, so there is no right operand (see execution_table step 3).
Why does 'a || b' result in true even though 'b' is false?
Because the OR operator (||) returns true if at least one operand is true. Since 'a' is true, the expression is true (see execution_table step 2).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result of 'a && b' at step 1?
Atrue
Bfalse
Cundefined
Derror
💡 Hint
Check the 'Result' column in execution_table row for step 1.
At which step does the NOT operator (!) get applied?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look for the row where Operator is '!' in the execution_table.
If variable 'a' was false, what would be the result of 'a || b' at step 2?
Afalse
Btrue
Cnull
Derror
💡 Hint
Recall OR (||) returns true if either operand is true; both false means false.
Concept Snapshot
Logical operators combine boolean values:
- && (AND): true if both true
- || (OR): true if at least one true
- ! (NOT): inverts true/false
Used to control decisions in code.
Full Transcript
This lesson shows how logical operators work in Kotlin. We start by evaluating the left operand. For AND (&&) and OR (||), we then evaluate the right operand if needed. The operator combines these values to produce true or false. For NOT (!), only one operand is needed and its value is inverted. We traced variables a and b with values true and false. The expression a && b is false because both must be true for AND. The expression a || b is true because one is true for OR. The expression !a is false because NOT inverts true to false. This helps in making decisions in programs.

Practice

(1/5)
1. Which logical operator in Kotlin means AND and returns true only if both conditions are true?
easy
A. ||
B. !
C. &&
D. &

Solution

  1. Step 1: Understand the meaning of && operator

    The && operator checks if both conditions are true and returns true only then.
  2. Step 2: Compare with other operators

    The || operator means OR, ! means NOT, and & is a bitwise operator, not logical AND.
  3. Final Answer:

    && -> Option C
  4. Quick Check:

    AND operator = && [OK]
Hint: AND means both true, use && [OK]
Common Mistakes:
  • Confusing && with ||
  • Using & instead of &&
  • Thinking ! means AND
2. Which of the following is the correct syntax to negate a boolean variable isActive in Kotlin?
easy
A. !isActive
B. not isActive
C. isActive!
D. ~isActive

Solution

  1. Step 1: Recall Kotlin negation syntax

    In Kotlin, the NOT operator is written as ! before the variable.
  2. Step 2: Check each option

    !isActive uses !isActive which is correct. not isActive is invalid syntax, C places ! after variable which is wrong, D uses ~ which is bitwise NOT invalid for booleans.
  3. Final Answer:

    !isActive -> Option A
  4. Quick Check:

    Negate with ! before variable [OK]
Hint: Put ! before variable to negate [OK]
Common Mistakes:
  • Putting ! after variable
  • Using 'not' keyword incorrectly
  • Using bitwise ~ for negation
3. What is the output of this Kotlin code?
val a = true
val b = false
println(a && !b || b)
medium
A. false
B. true
C. Compilation error
D. null

Solution

  1. Step 1: Evaluate !b

    b is false, so !b is true.
  2. Step 2: Evaluate a && !b

    a is true, !b is true, so a && !b is true.
  3. Step 3: Evaluate (a && !b) || b

    True || false is true.
  4. Final Answer:

    true -> Option B
  5. Quick Check:

    True AND NOT false OR false = true [OK]
Hint: Evaluate NOT first, then AND, then OR [OK]
Common Mistakes:
  • Ignoring NOT precedence
  • Mixing AND and OR order
  • Assuming false output
4. Find the error in this Kotlin code snippet:
val x = true
val y = false
if x && y {
    println("Both true")
}
medium
A. Missing parentheses around condition in if statement
B. Using && instead of ||
C. Incorrect println syntax
D. Variables x and y not declared

Solution

  1. Step 1: Check if statement syntax

    Kotlin requires parentheses around the condition in if statements.
  2. Step 2: Identify the error

    The code uses if x && y without parentheses, which causes a syntax error.
  3. Final Answer:

    Missing parentheses around condition in if statement -> Option A
  4. Quick Check:

    if condition needs parentheses [OK]
Hint: Always put () around if conditions [OK]
Common Mistakes:
  • Omitting parentheses in if
  • Confusing && with ||
  • Wrong println usage
5. You want to check if a user is logged in and has admin rights before allowing access. Which Kotlin condition correctly uses logical operators for this?
val loggedIn = true
val isAdmin = false
// Choose the correct if condition
hard
A. if (loggedIn || isAdmin) { println("Access granted") }
B. if (!loggedIn || !isAdmin) { println("Access granted") }
C. if (!loggedIn && isAdmin) { println("Access granted") }
D. if (loggedIn && isAdmin) { println("Access granted") }

Solution

  1. Step 1: Understand the requirement

    Access is allowed only if user is logged in AND has admin rights.
  2. Step 2: Analyze each condition

    if (loggedIn && isAdmin) { println("Access granted") } uses && to require both loggedIn and isAdmin true. if (loggedIn || isAdmin) { println("Access granted") } allows access if either is true, which is wrong. The remaining options use negations or incorrect logic, which do not meet requirement.
  3. Final Answer:

    if (loggedIn && isAdmin) { println("Access granted") } -> Option D
  4. Quick Check:

    Use AND to require both conditions true [OK]
Hint: Use && to require both true for access [OK]
Common Mistakes:
  • Using || instead of &&
  • Negating conditions wrongly
  • Allowing access if only one is true
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard