3.4 布尔值
bool型的值或布尔值(boolean)只有两种可能:真(true)和假(false)。if和for语句里的条件就是布尔值,比较操作符(如==和<)也能得出布尔值结果。一元操作符(!)表示逻辑取反,因此!true就是false,或者可以说(!true==false)==true。比如,考虑到代码风格,布尔表达式x==true相对冗长,我们总是简化为x。
布尔值可以由运算符&&(AND)以及||(OR)组合运算,这可能引起短路行为:如果运算符左边的操作数已经能直接确定总体结果,则右边的操作数不会计算在内,所以下面的表达式是安全的:
其中,如果作用于空字符串,s[0]会触发宕机异常。
因为&&较||优先级更高(助记窍门:&&表示逻辑乘法,||表示逻辑加法),所以如下形式的条件无须加圆括号:
布尔值无法隐式转换成数值(如0或1),反之也不行。如下状况下就有必要使用显式if:
假如转换操作常常用到,就值得专门为此写个函数:
反向转换操作过于简单,无须专门撰写函数,但为了与btoi对应,这里还是给出其代码: