Logical operators help you combine or change true/false values to make decisions in your code.
Logical operators in 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.
let isSunny = true let isWarm = false let canGoOutside = isSunny && isWarm
let hasKey = false let knowsPassword = true let canEnter = hasKey || knowsPassword
let isRaining = true let stayDry = !isRaining
This program uses logical operators to decide what message to print based on whether it is the weekend and if you have homework.
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.") }
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.
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
true only if both conditions are true?Solution
Step 1: Understand the AND operator
The AND operator (&&) returns true only when both conditions it connects are true.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.Final Answer:
&& (AND) -> Option CQuick Check:
AND = && [OK]
- Confusing AND (&&) with OR (||)
- Thinking NOT (!) combines conditions
- Mixing equality (==) with logical operators
isActive in Swift?Solution
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.Step 2: Check each option
!isActive is the correct syntax. The other options are not valid Swift syntax for negation.Final Answer:
!isActive -> Option AQuick Check:
NOT = ! before variable [OK]
- Writing 'not' instead of '!'
- Putting ! after variable name
- Using method calls like .not()
let a = true let b = false print(a || b && !b)
Solution
Step 1: Evaluate the NOT operator
!b means !false which is true.Step 2: Evaluate AND operator
b && !b is false && true which is false.Step 3: Evaluate OR operator
a || (result of AND) is true || false which is true.Final Answer:
true -> Option BQuick Check:
OR with true = true [OK]
- Ignoring operator precedence
- Evaluating OR before AND
- Misunderstanding ! operator
let x = true
let y = false
if x || && y {
print("Yes")
}Solution
Step 1: Analyze the if condition syntax
The condition uses 'x || && y' which combines OR (||) and AND (&&) operators without a proper operand between them.Step 2: Identify the logical operator misuse
Logical operators must connect two Boolean expressions. Here, '|| &&' is invalid syntax.Final Answer:
Incorrect use of logical operators together -> Option DQuick Check:
Operators must connect expressions properly [OK]
- Writing two operators without a condition between
- Assuming parentheses fix operator misuse
- Confusing variable types with operator errors
n is between 10 and 20 inclusive in Swift. Which condition correctly uses logical operators?Solution
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.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.Final Answer:
n >= 10 && n <= 20 -> Option AQuick Check:
Use AND for range checks [OK]
- Using OR instead of AND for range
- Excluding boundary values by using > or <
- Using negation incorrectly for range
Ready to prove it?
Pass the test and this pattern moves unknown
