Booleans - Programming

The “bool” data type generates logically true or false.

Logical/Boolean Operators

Logical/Boolean Expressions
if(<boolean expressions>)
	{
	.....<block>
	}

The <boolean expressions> will contain a single or complex expression to be evaluated. The <block> means a block of code that will be executed only if the <boolean expressions> are evaluated to be true.

More Boolean Expressions:
Boolean Expression What it means
if (x == 10) if x is equal to 10
if (x <= 10) if x is less than and equal to 10
if (x > 10 || y > 20) if x is greater than 10 or y is greater than 20
if (x <= 10 && y <= 20) if x<=10 and y<=20
if !(x > 10 || y > 20) if x<=10  and y<=20
if ( !( x <=10 || x >=20) ) If x>10 and x<20

Use special caution when using boolean expressions!

A Boolean type (bool) is a simple integer value.

Let’s take a look at how if (... ) is interpreted:

  • if (...) will be computed by the compiler; it produces a meaning of true or false.
  • Truth is: when ( ... ) produces anything other than 0 (i.e. zero), the if ( .... ) will mean true.
  • So: the following expressions are always true:
    • if (1)
    • if ( 10 )
    • if ( anything results non-zero)

     

Common Errors you must pay attention to:

Example 1:

int X = 10, Y=20;
if  (X = Y)
	brain.Screen.print("X and Y are the same.”);   
else
	brain.Screen.print("X and Y are different.”);

Output: X and Y are the same. 

Why?

if (X = Y) really means:

  • Assign Y to X, so X has value of 20 
  • The compiler interprets it as if (20) where (20) is true as it is not (0).

Example 2:

int X = 0, Y=0;
if  (X = Y)
	brain.Screen.print("X and Y are the same.”);   
else
	brain.Screen.print("X and Y are different.”);

Output: X and Y are different. 

Why?

if (X = Y) really means:

  • Assign Y to X, so X has value of 0 (zero).
  • Compiler interprets it as: (0) as false.