Skip to main content

Section 5.8 Bool Functions

Functions can return bool values just like any other type, which is often convenient for hiding complicated tests inside functions. For example:
bool isSingleDigit(int x) {
  if (x >= 0 && x < 10) {
    return true;
  }
  else {
    return false;
  }
}
The name of this function is isSingleDigit. It is common to give boolean functions names that sound like yes/no questions. The return type is bool, which means that every return statement has to provide a bool expression.
The code itself is straightforward, although it is a bit longer than it needs to be. Remember that the expression x >= 0 && x < 10 has type amp; amp; bool, so there is nothing wrong with returning it directly, and avoiding the if statement altogether:
bool isSingleDigit(int x) {
  return (x >= 0 && x < 10);
}
In main you can call this function in the usual ways:
cout << isSingleDigit(2) << endl;
bool bigFlag = !isSingleDigit(17);
The first line outputs the value true because 2 is a single-digit number. Unfortunately, when C++ outputs bools, it does not display the words true and false, but rather the integers 1 and 0.
The second line assigns the value true to bigFlag only if 17 is not a single-digit number.
The most common use of bool functions is inside conditional statements
if (isSingleDigit(x)) {
  cout << "x is little" << endl;
}
else {
  cout << "x is big" << endl;
}

Checkpoint 5.8.1.

Checkpoint 5.8.2.

Construct a block of code that first checks if a number x is positive, then checks if it’s even, and then prints out a message to classify the number. It prints β€œboth” if the number is both positive and even, β€œeven” if the number is only even, β€œpositive” if the number is only positive, and finally β€œneither” if it is neither postive nor even.
You have attempted of activities on this page.