Boolean expression: Difference between revisions

Content deleted Content added
m Reverted edits by 60.48.39.68 (talk) (AV)
 
(21 intermediate revisions by 17 users not shown)
Line 1:
{{Short description|Expression in a computer program that produces either "true" or "false" when evaluated}}
In [[computer science]], a '''Boolean expression''' (also known as '''logical expression''') is an [[Expression (programming)|expression]] used in [[programming language]]s 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 '''trueTrue/False''' or '''falseYes/No''', [[Boolean data type|Boolean-typed]] variables, Boolean-valued operators, and [[Boolean-valued function]]s.<ref>{{citation
| last1 = Gries | first1 = David | author1-link = David Gries
| last2 = Schneider | first2 = Fred B. | author2-link = Fred B. Schneider
Line 12:
| year = 1993}}.</ref>
 
Boolean expressions correspond to [[propositional formula]]s in logic and are aassociated [[special case]] ofto [[Boolean circuit]]s.<ref>{{citation
| last = van Melkebeek | first = Dieter
| isbn = 9783540414926
Line 24:
 
==Boolean operators==
Most [[programming language]]s have the Boolean operators [[Logical disjunction|OR]], [[Logical conjunction|AND]] and [[Negation|NOT]]; in [[C (programming language)|C]] and some newer[[List of C-family programming languages|languages inspired by it]], these are represented by "||" (double pipe character), "&&" (double [[ampersand]]) and "!" ([[Exclamation mark|exclamation point]]) respectively, while the corresponding [[bitwise operation]]s are represented by "|", "&" and "~" (tilde).<ref>E.g. for [[Java (programming language)|Java]] see {{citation
| last1 = Brogden | first1 = William B.
| last2 = Green | first2 = Marcus
Line 34:
| year = 2003}}.</ref> In the mathematical literature the symbols used are often "+" ([[Plus sign|plus]]), "'''·'''" ([[Full stop|dot]]) and [[overbar]], or "∨" ([[Descending_wedge|vel]]), "∧" ([[Wedge_(symbol)|et]]) and "¬" ([[Negation|not]]) or "′" (prime).
 
Some languagesslanguages, e.g., [[Perl]] and [[Ruby (programming language)|Ruby]], have two sets of booleanBoolean 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 booleanBoolean type. In those languages the same operators serve for booleanBoolean operations and bitwise operations. The languages represent OR, AND, NOT and EXCLUSIVE OR by "|", "&", "¬" (infix) and "¬" (prefix).
 
===Short-circuit operators===
{{Main|Short-circuit evaluation}}
Some programming languages, e.g., [[Ada (programming language)|Ada]], have [[Short-circuit evaluation|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 effect (computer science)|side effects]] that only occur for one value of the left hand operand.
 
==Examples==
Line 43 ⟶ 47:
*The expression {{code|3 > 5}} is evaluated as {{samp|false}}.
*{{code|1=5>=3}} and {{code|1=3<=5}} are equivalent Boolean expressions, both of which are evaluated as {{samp|true}}.
*<code>[[typeof]] true</code> and <code>typeof false</code> return {{samp|boolean}}
*Of course, most Boolean expressions will contain at least one variable ({{code|X > 3}}), and often more ({{code|X > Y}}).