Logical Operators

And, Or, Not

Example

&& (and), || (or) and ! (not) combine booleans. Evaluation stops as soon as the answer is known (short-circuit).

fun main() {
    val isLoggedIn = true
    val hasAddress = false
    val cartTotal = 350

    val canCheckout = isLoggedIn && hasAddress && cartTotal > 0
    println("Can checkout: $canCheckout")

    val showOffer = cartTotal > 299 || !isLoggedIn
    println("Show offer: $showOffer")

    val name: String? = null
    // safe: right side runs only if name != null
    println(name != null && name.length > 3)
}

Output

Can checkout: false
Show offer: true
false

Truth Table

aba && ba || b!a
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue