5.8 布尔函数

最后更新于:2022-04-01 06:20:11

和返回其他任何类型一样,函数也能返回布尔值,将复杂的条件测试隐藏在函数中非常方便。例如: ~~~ bool isSingleDigit (int x) { if (x >= 0 && x < 10) { return true; } else { return false; } } ~~~ 函数名是isSingleDigit。布尔函数常见的命名方式是,让名字听起来像是在提问题,回答是否即可。布尔函数的返回类型是bool,这意味着函数中的每个return语句都要提供一个布尔表达式。 例子中的代码比较直接,虽然实际可能不需要这么长。还记得表达式 x >= 0 && x < 10吧,它也是布尔类型,所以直接返回该表达式是没问题的,还可以避免if语句。 ~~~ bool isSingleDigit (int x) { return (x >= 0 && x < 10); } ~~~ 在main函数中,可以以常规的方式调用该函数: ~~~ cout << isSingleDigit (2) << endl; bool bigFlag = !isSingleDigit (17); ~~~ 第一行输出为真,因为2只有一位。不幸的是,C++输出布尔值的时候,并不直接显示“true”和“false”,而是显示整数1和0(可以通过boolalpha标记来修复这个问题,不过这个方式太过丑陋,我都不想提及)。 第二行中,只有当17是一位的数字时,bigFlag会被赋值为true。 最常见的用法是将布尔函数放在条件语句中: ~~~ if (isSingleDigit (x)) { cout << "x is little" << endl; } else { cout << "x is big" << endl; } ~~~
';