Skip to main content

How To Think Like a Computer Scientist C++ Edition The Pretext Interactive Version

Section 5.6 Boolean Variables

As usual, for every type of value, there is a corresponding type of variable. In C++ the boolean type is called bool. Boolean variables work just like the other types:
bool fred;
fred = true;
bool testResult = false;
The first line is a simple variable declaration; the second line is an assignment, and the third line is a combination of a declaration and as assignment, called an initialization.
As I mentioned, the result of a comparison operator is a boolean, so you can store it in a bool variable
bool evenFlag = (n % 2 == 0);     // true if n is even
bool plusFlag = (x > 0);    // true if x is positive
and then use it as part of a conditional statement later
if (evenFlag) {
  cout << "n was even when I checked it";
}
A variable used in this way is called a flag, since it flags the presence or absence of some condition.

Checkpoint 5.6.1.

Checkpoint 5.6.2.

Checkpoint 5.6.3.

What will print?
int n = 16;
int x = 4;

bool evenFlag = (n % 2 == 0);
bool plusFlag = (x > 0);

if (evenFlag) {
  cout << "n was even when I checked it ";
}

if (plusFlag) {
  cout << "x was positive when I checked it";
}
  • n was even when I checked it x was positive when I checked it
  • Great!
  • x was positive when I checked it n was even when I checked it
  • Make sure you follow the correct order of execution. Also, a space is not automatically added.
  • x was positive when I checked it
  • Take another look at the result from the modulus operator.
  • n was even when I checked itx was positive when I checked it
  • Both flags are made, But A space is after it.
  • x was positive when I checked itn was even when I checked it
  • Make sure you follow the correct order of execution.

Checkpoint 5.6.4.

What will print?
bool low_battery=true;
bool power_outage=true;

if (low_battery) {

  if (power_outage) {
      power_outage=!power_outage;
  }
  else{
      low_battery=false;
  }

  if (!power_outage) {

    if (low_battery) {
        cout<<"Charging your phone"<<endl;
    }
    else{
        cout<<"Battery is charged"<<endl;
    }

  }
  else{
    cout<<"There is no power"<<endl>>;
  }
}
  • nothing will print
  • The value of low_battery is true so we enter the first if block.
  • “Charging your phone”
  • correct! low_battery stays true and we set power_outage to false.
  • “Battery is charged”
  • low_battery is true so we don’t reach this else.
  • “There is no power”
  • We change the value of power_outage to false before hand.
You have attempted 1 of 4 activities on this page.