Bird
Raised Fist0
Swiftprogramming~5 mins

Logical operators in Swift

Choose your learning style10 modes available
Introduction

Logical operators help you combine or change true/false values to make decisions in your code.

Checking if two conditions are both true before running some code.
Running code if at least one of several conditions is true.
Reversing a true/false condition to do the opposite action.
Making complex decisions by combining multiple true/false checks.
Syntax
Swift
let result = condition1 && condition2  // AND operator
let result = condition1 || condition2  // OR operator
let result = !condition                 // NOT operator

AND (&&) means both conditions must be true.

OR (||) means at least one condition must be true.

NOT (!) flips true to false, and false to true.

Examples
This checks if it is both sunny and warm. Since isWarm is false, canGoOutside will be false.
Swift
let isSunny = true
let isWarm = false
let canGoOutside = isSunny && isWarm
This checks if you have a key or know the password. Since knowsPassword is true, canEnter will be true.
Swift
let hasKey = false
let knowsPassword = true
let canEnter = hasKey || knowsPassword
This flips the value of isRaining. Since it is true, stayDry will be false.
Swift
let isRaining = true
let stayDry = !isRaining
Sample Program

This program uses logical operators to decide what message to print based on whether it is the weekend and if you have homework.

Swift
import Foundation

let isWeekend = true
let haveHomework = false

if isWeekend && !haveHomework {
    print("You can relax today!")
} else if isWeekend && haveHomework {
    print("You should finish your homework.")
} else {
    print("Time to go to school.")
}
OutputSuccess
Important Notes

Use parentheses to group conditions and make your code easier to read.

Logical operators work with Boolean values: true or false.

Combining multiple logical operators can create complex conditions.

Summary

Logical operators combine true/false values to help make decisions.

AND (&&) needs both conditions true, OR (||) needs one true, NOT (!) flips true/false.

They are useful for checking multiple things at once in your code.

Practice

(1/5)
1. Which logical operator in Swift returns true only if both conditions are true?
easy
A. == (Equality)
B. || (OR)
C. && (AND)
D. ! (NOT)

Solution

  1. Step 1: Understand the AND operator

    The AND operator (&&) returns true only when both conditions it connects are true.
  2. Step 2: Compare with other operators

    The OR operator (||) returns true if at least one condition is true, NOT (!) flips true to false and vice versa, and == checks equality, not logical combination.
  3. Final Answer:

    && (AND) -> Option C
  4. Quick Check:

    AND = && [OK]
Hint: AND needs both true; look for && operator [OK]
Common Mistakes:
  • Confusing AND (&&) with OR (||)
  • Thinking NOT (!) combines conditions
  • Mixing equality (==) with logical operators
2. Which of the following is the correct syntax to negate a Boolean value isActive in Swift?
easy
A. !isActive
B. not isActive
C. isActive!
D. isActive.not()

Solution

  1. Step 1: Recall the NOT operator syntax

    In Swift, the NOT operator is written as an exclamation mark (!) placed before the Boolean variable to flip its value.
  2. Step 2: Check each option

    !isActive is the correct syntax. The other options are not valid Swift syntax for negation.
  3. Final Answer:

    !isActive -> Option A
  4. Quick Check:

    NOT = ! before variable [OK]
Hint: Use ! before variable to negate Boolean [OK]
Common Mistakes:
  • Writing 'not' instead of '!'
  • Putting ! after variable name
  • Using method calls like .not()
3. What will be the output of this Swift code?
let a = true
let b = false
print(a || b && !b)
medium
A. Syntax Error
B. true
C. false
D. nil

Solution

  1. Step 1: Evaluate the NOT operator

    !b means !false which is true.
  2. Step 2: Evaluate AND operator

    b && !b is false && true which is false.
  3. Step 3: Evaluate OR operator

    a || (result of AND) is true || false which is true.
  4. Final Answer:

    true -> Option B
  5. Quick Check:

    OR with true = true [OK]
Hint: Remember NOT first, then AND, then OR [OK]
Common Mistakes:
  • Ignoring operator precedence
  • Evaluating OR before AND
  • Misunderstanding ! operator
4. Identify the error in this Swift code snippet:
let x = true
let y = false
if x || && y {
    print("Yes")
}
medium
A. Missing parentheses around conditions
B. print statement syntax error
C. Variables x and y are not Boolean
D. Incorrect use of logical operators together

Solution

  1. Step 1: Analyze the if condition syntax

    The condition uses 'x || && y' which combines OR (||) and AND (&&) operators without a proper operand between them.
  2. Step 2: Identify the logical operator misuse

    Logical operators must connect two Boolean expressions. Here, '|| &&' is invalid syntax.
  3. Final Answer:

    Incorrect use of logical operators together -> Option D
  4. Quick Check:

    Operators must connect expressions properly [OK]
Hint: Operators need operands on both sides [OK]
Common Mistakes:
  • Writing two operators without a condition between
  • Assuming parentheses fix operator misuse
  • Confusing variable types with operator errors
5. You want to check if a number n is between 10 and 20 inclusive in Swift. Which condition correctly uses logical operators?
hard
A. n >= 10 && n <= 20
B. n > 10 && n < 20
C. n >= 10 || n <= 20
D. !(n < 10 && n > 20)

Solution

  1. Step 1: Understand the range condition

    To check if n is between 10 and 20 inclusive, n must be greater than or equal to 10 AND less than or equal to 20.
  2. Step 2: Evaluate each option

    n >= 10 || n <= 20 uses OR which is incorrect because it allows values outside the range. n > 10 && n < 20 excludes 10 and 20 by using > and <. !(n < 10 && n > 20) negates an impossible condition and is incorrect.
  3. Final Answer:

    n >= 10 && n <= 20 -> Option A
  4. Quick Check:

    Use AND for range checks [OK]
Hint: Use && to combine lower and upper bounds [OK]
Common Mistakes:
  • Using OR instead of AND for range
  • Excluding boundary values by using > or <
  • Using negation incorrectly for range
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