In computer science, a **Boolean expression** is an expression used in programming languages that produces a Boolean value when evaluated. A Boolean value is either **true** or **false**. A Boolean expression may be composed of a combination of the Boolean constants **true** or **false**, Boolean-typed variables, Boolean-valued operators, and Boolean-valued functions.^{[1]}

Boolean expressions correspond to propositional formulas in logic and are a special case of Boolean circuits.^{[2]}

Most programming languages have the Boolean operators OR, AND and NOT; in C and some languages inspired by it, these are represented by "||" (double pipe character), "&&" (double ampersand) and "!" (exclamation point) respectively, while the corresponding bitwise operations are represented by "|", "&" and "~" (tilde).^{[3]} In the mathematical literature the symbols used are often "+" (plus), "**·**" (dot) and overbar, or "∨" (vel), "∧" (et) and "¬" (not) or "′" (prime).

Some languages, e.g., Perl and Ruby, have two sets of Boolean operators, with identical functions but different precedence. Typically these languages use **and**, **or** and **not** for the lower precedence operators.

Some programming languages derived from PL/I have a bit string type and use BIT(1) rather than a separate Boolean type. In those languages the same operators serve for boolean operations and bitwise operations. The languages represent OR, AND, NOT and EXCLUSIVE OR by "|", "&", "¬" (infix) and "¬" (prefix).

Main article: Short-circuit evaluation |

Some programming languages, e.g., Ada, have short-circuit Boolean operators. These operators use a lazy evaluation, that is, if the value of the expression can be determined from the left hand Boolean expression then they do not evaluate the right hand Boolean expression. As a result, there may be side effects that only occur for one value of the left hand operand.

- The expression
`5 > 3`

is evaluated as`true`. - The expression
`3 > 5`

is evaluated as`false`. `5>=3`

and`3<=5`

are equivalent Boolean expressions, both of which are evaluated as`true`.`typeof true`

and`typeof false`

return`boolean`- Of course, most Boolean expressions will contain at least one variable (
`X > 3`

), and often more (`X > Y`

).