Version: 18

# Boolean

A boolean field, variable or expression can be either TRUE or FALSE.

## Boolean functions​

4D provides the Boolean functions `True`, `False`, and `Not` in the dedicated Boolean theme. For more information, see the descriptions of these commands

### Example​

This example sets a Boolean variable based on the value of a button. It returns True in myBoolean if the myButton button was clicked and False if the button was not clicked. When a button is clicked, the button variable is set to 1.

`` If(myButton=1) //If the button was clicked    myBoolean:=True //myBoolean is set to True Else //If the button was not clicked,    myBoolean:=False //myBoolean is set to False End if``

The previous example can be simplified into one line.

``myBoolean:=(myButton=1)``

## Logical operators​

4D supports two logical operators that work on Boolean expressions: conjunction (AND) and inclusive disjunction (OR). A logical AND returns TRUE if both expressions are TRUE. A logical OR returns TRUE if at least one of the expressions is TRUE. The following table shows the logical operators:

OperationSyntaxReturnsExpressionValue
ANDBoolean & BooleanBoolean("A" = "A") & (15 # 3)True
("A" = "B") & (15 # 3)False
("A" = "B") & (15 = 3)False
ORBoolean | BooleanBoolean("A" = "A") | (15 # 3)True
("A" = "B") | (15 # 3)True
("A" = "B") | (15 = 3)False

The following is the truth table for the AND logical operator:

Expr1Expr2Expr1 & Expr2
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

The following is the truth table for the OR logical operator:

Expr1Expr2Expr1 | Expr2
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Tip: If you need to calculate the exclusive disjunction between Expr1 and Expr2, evaluate:

`` (Expr1|Expr2) & Not(Expr1 & Expr2)  ``