Every Friday at Bitmetric we’re posting a new Qlik certification practice question to our LinkedIn company page. Last Friday we asked the following Qlik Data Architect certification practice question about booleans operators (AND, OR, NOT, XOR) in Qlik Sense.

The answers were more or less evenly distributed between B and C.

## The correct answer is B

Statement 1 evaluates to `True`

, while statement 2 evaluates to `False`

. To see how we arrived at this answer, let’s first learn more about how Boolean operators are evaluated in Qlik (and in general).

### How does Qlik evaluate Boolean operators?

Behind the Boolean operators is Boolean mathematics. The order of the Boolean algebra is the highest to lowest priority. This is:

- NOT

- AND

- OR

Expressions inside brackets are always evaluated first. In Boolean algebra `False()`

evaluates to `0`

, and `True()`

evaluates to `1`

. We can also interpret `AND`

as multiplication (*) and `OR `

as addition (+).

Using this information, we can evaluate the first expression

`False() OR NOT False() AND True()`

as:

`0 OR NOT 0 AND 1`

`NOT `

is evaluated first, so we can rewrite the expression as:

`0 OR 1 AND 1`

Substituting `AND `

for multiplication and `OR `

for addition, we can finally rewrite the expression as:

`0 + 1 * 1`

Applying the PEMDAS order of operations, we can calculate the result as `1`

, `true`

.

(Note that in Qlik `True()`

evaluates to `-1`

instead of `1`

, but the outcome is the same)

### The XOR Boolean operator

The XOR, or exclusive or, operator is a shorthand for:

(A OR B) AND NOT (A AND B)

Or, to phrase it differently, XOR evaluates to `true`

is either option is true, but not when both options are true.

When we look at the second statement:

`True() XOR True()`

We can see that this doesn’t match the requirements of the XOR operator, so it evaluates to `false`

.

### Using parentheses for readability

The Boolean operators can be used at different places in Qlik Sense. They are used in `if`

statements, for example to make flags in tables. They are used in `WHERE`

statements to filter specific data, and many other options.

In order to improve the readability of the Boolean operators, it’s a good idea to use parentheses. The expression below has the same result as the first statement from the question, but it is a lot easier to read:

`False()`

OR

(

NOT False() AND True()

)

### Override the order of operations with parentheses

We can also override the order of operations with parentheses. For example, if we want the OR operator to be evaluated before the AND operator, we can rewrite the expression as:

`(`

False() OR NOT False()

)

AND

True()

### Should you always use parentheses?

That depends, but typically it’s a good idea to use parentheses to aid readibility and understanding. You can learn more about this in our Qlik Coding Conventions.

That’s it for this week, see you next Friday!

### See you at QlikWorld 2023 in Vegas?

Come see us at QlikWorld 2023 for a chance to win a free, lifetime SenseTheme subscription and get some cool swag.

### Want more Friday Qlik Test Prep?

Check out the Friday Qlik Test Prep archive for more Qlik questions and answers.