## Operator: &&

``` operator && { associativity left precedence }```

### Declarations

func &&(_: Bool, rhs: @autoclosure () throws -> Bool)

Performs a logical AND operation on two Boolean values.

The logical AND operator (`&&`) combines two Boolean values and returns `true` if both of the values are `true`. If either of the values is `false`, the operator returns `false`.

This operator uses short-circuit evaluation: The left-hand side (`lhs`) is evaluated first, and the right-hand side (`rhs`) is evaluated only if `lhs` evaluates to `true`. For example:

``````let measurements = [7.44, 6.51, 4.74, 5.88, 6.27, 6.12, 7.76]
let sum = measurements.reduce(0, combine: +)

if measurements.count > 0 && sum / Double(measurements.count) < 6.5 {
print("Average measurement is less than 6.5")
}
// Prints "Average measurement is less than 6.5"``````

In this example, `lhs` tests whether `measurements.count` is greater than zero. Evaluation of the `&&` operator is one of the following:

• When `measurements.count` is equal to zero, `lhs` evaluates to `false` and `rhs` is not evaluated, preventing a divide-by-zero error in the expression `sum / Double(measurements.count)`. The result of the operation is `false`.
• When `measurements.count` is greater than zero, `lhs` evaluates to `true` and `rhs` is evaluated. The result of evaluating `rhs` is the result of the `&&` operation.

Parameters: lhs: The left-hand side of the operation. rhs: The right-hand side of the operation.

#### Declaration

`func &&(lhs: Bool, rhs: @autoclosure () throws -> Bool) -> Bool`