Previous: Boolean Constants, Up: Booleans



3.2.2 Logical Operators

Bro supports three logical operators: &&, ||, and ! are Boolean “and,” “or,” and “not,” respectively. && and || are “short circuit” operators, as in C: they evaluate their right-hand operand only if needed.

The && operator returns F if its first operand evaluates to false, otherwise it evaluates its second operand and returns T if it evaluates to true. The || operator evaluates its first operand and returns T if the operand evaluates to true. Otherwise it evaluates its second operand, and returns T if it is true, F if false.

The unary ! operator returns the boolean negation of its argument. So, ! T yields F, and ! F yields T.

The logical operators are left-associative. The ! operator has very high precedence, the same as unary + and -; see The || operator has precedence just below &&, which in turn is just below that of the comparison operators (see Comparison Operators).