This example is in Java. For AP CSP Pseudocode, see Working with boolean variables in AP CSP Pseudocode.
boolean is a Java primitive data type with exactly 2 possible values: true and false (all lowercase, no quotes). Unlike in some other languages, it is NOT possible in Java to use 0 as false and 1 as true.
boolean variables are declared, initialized, and used just like other primitive type variables in Java. boolean variables are often known as flag variables and are often used to identify whether a particular condition exists.
Example 1
boolean childAteLunch = true;
if(childAteLunch)
System.out.println("Time for nap");
else
System.out.println("Time for lunch");
The variable childAteLunch is initialized to true.
The conditional statement if(childAteLunch) checks if the value of childAteLunch is true. Since the value is true, the code segment prints "Time for nap".
Although it would work, it is not necessary to write if(childAteLunch == true). The original condition already evaluates to true if the variable stores true and false if the variable stores false.
Example 2
int grade = (int) (Math.random() * 101);
// 0 <= grade <= 100
boolean earnedHonorRoll = grade >= 90;
if( ! earnedHonorRoll )
System.out.println("Try again next marking period");
else
System.out.println("Congrats");
The variable grade is initialized to a random value in the range 0 <= grade <= 100. See Generate random numbers with Math.random() for additional details.
The variable earnedHonorRoll is initialized to the result of evaluating the boolean expression grade >= 90. The expression grade >= 90 evaluates to either true or false depending on the value of grade. The variable earnedHonorRoll is set to either true or false.
The conditional statement if( ! earnedHonorRoll ) checks if the value of earnedHonorRoll is false using the Java not operator (!).
Although it would work, it is not necessary to write if(earnedHonorRoll == false). The original condition already evaluates to true if the variable stores false and false if the variable stores true.
Why avoid == true and == false
Example with error 1
boolean childAteLunch = false;
if(childAteLunch = true) // mistake
System.out.println("Time for nap"); // prints
else
System.out.println("Time for lunch"); // does not print
System.out.println(childAteLunch); // prints true
This code contains a mistake that is easy to make and easy to miss when reviewing code. The condition is:
if(childAteLunch = true)
instead of:
if(childAteLunch == true)
The single equals sign (=) is an assignment operator. The code childAteLunch = true sets the value of childAteLunch to true rather than checking if it is true. When used as a condition, childAteLunch = true evaluates to true.
The code segment prints "Time for nap" instead of "Time for lunch". The last print statement prints true, which is the value of childAteLunch at the end of the code segment.
Example with error 2
boolean flag = true;
if(flag = false) // mistake
System.out.println("a"); // does not print
else
System.out.println("b"); // prints
System.out.println(flag); // prints false
The code flag = false sets the value of flag to false. When used as a condition, flag = false evaluates to false.
The code segment prints "b" instead of "a". The last print statement prints false, which is the value of flag at the end of the code segment.
Help & comments
Get help from AP CS Tutor Brandon Horn