Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Boolean Operations

Boolean operators, such as and, or and not combine or modify bool values. They’re useful for creating more complex conditions. In this chapter, you will learn how each operator works.

and Operator

The and operator combines two conditions and evaluates to true only if both conditions are true.

use Core.print

def main():
    bool is_adult = true;
    bool has_id = false;
    print($"Is adult and has an ID? {is_adult and has_id}\n");

This program will print this line to the console:

Is adult and has an ID? false

or Operator

The or operator combines two conditions and evaluates to true if at least one condition is true.

use Core.print

def main():
    bool is_vip = true;
    bool has_ticket = false;
    print($"Is VIP or has a ticket? {is_vip or has_ticket}\n");

This program will print this line to the console:

Is VIP or has a ticket? true

not Operator

The not operator inverts the value of a boolean, so it makes false to true and vice versa.

use Core.print

def main():
    bool is_raining = false;
    print($"Is it not raining? {not is_raining}\n");

This program will print this line to the console:

Is it not raining? true

Operator Precedence

The precedence (default order of execution) of and is higher than the one of or, similar to how * has a higher precedence than + in arithmetics. This means that the and operation will always be evaluated before the or operation:

use Core.print

def main():
    // Evaluates to 'true' ('and' happens first)
    bool condition = true or false and false;
    print($"condition = {condition}\n");

    // Evaluates to 'false' ('and' happens second)
    bool clarified = (true or false) and false;
    print($"clarified = {clarified}\n");

This program prints these lines to the console:

condition = true
clarified = false