codecamp

C++ 布尔函数

和返回其他任何类型一样,函数也能返回布尔值,将复杂的条件测试隐藏在函数中非常方便。例如:

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;
} 
C++ 逻辑操作符
C++ 从main函数返回
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }