Logical operators (&&, ||, !) in Kotlin - Time & Space Complexity
Logical operators help decide true or false in code. We want to see how using them affects how long the code takes to run.
How does the number of checks grow when we use these operators?
Analyze the time complexity of the following code snippet.
fun checkConditions(a: Boolean, b: Boolean, c: Boolean): Boolean {
return (a && b) || !c
}
This code checks three true/false values using logical AND, OR, and NOT operators.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Evaluating three Boolean values with logical operators.
- How many times: Each operator runs once per function call; no loops or repeated checks.
Since the function only checks three values once, the work stays the same no matter what.
| Input Size (n) | Approx. Operations |
|---|---|
| 3 (fixed booleans) | 3 checks |
| 10 (if extended) | Still 3 checks (no loops) |
| 1000 (if extended) | Still 3 checks (no loops) |
Pattern observation: The number of operations does not grow with input size because there are no loops or repeated checks.
Time Complexity: O(1)
This means the time to run stays the same no matter how many inputs you might imagine.
[X] Wrong: "Logical operators check all inputs every time, so time grows with input size."
[OK] Correct: Logical operators stop checking as soon as the result is clear, and here we only have a fixed number of checks.
Understanding how logical operators work helps you write efficient conditions and shows you know how code runs fast and smart.
"What if we used a list of booleans and checked them all with && in a loop? How would the time complexity change?"