2.4.1 一个简单的分支机制(2)
如果score的值大于0,同时小于10,就执行第一个cout语句;否则执行第二个。
还可以使用or(逻辑或)操作符(在C++(www.cppentry.com)中表示为||)来合并两个比较表达式。例如,假定y小于0或y大于12,则以下表达式为true:
- (y < 0) || (y > 12)
用||连接两个比较时,只要其中任何一个为true或者两个都为true(满足任何条件),整个表达式就为true;否则,整个表达式为false。
"逻辑或"操作符||
可用逻辑或(or)操作符||将两个简单测试合并为一个更复杂的布尔表达式。
语法(针对使用||的布尔表达式)
- (Comparison_1) || (Comparison_2)
示例(包含在一个if-else语句内)- if ( (x == 1) || (x == y) )
- cout << "x is 1 or x equals y.\n";
- else
- cout << "x is neither 1 nor equal to y.\n";
如果x等于1,或者x等于y (或者同时满足这两个条件),就执行第一个cout语句,否则执行第二个。
记住,在if-else语句中使用布尔表达式时,必须用圆括号将布尔表达式封闭起来。例如,在一个if-else语句中,如果if的条件使用了操作符&&,并包含两个比较,就要像下面这样用圆括号封闭if之后的整个比较表达式:
- if ( (temperature >= 95) && (humidity >= 90) )
- . . .
注意,总共有两层圆括号,外层的圆括号是必需的,但内层的圆括号(用于封闭不同的比较)则不是必需的。但是,由于它们能使语句的结构更清楚,所以我们通常都会包括它们。
可以使用求反操作符!对任何布尔表达式求反。如果希望对一个布尔表达式求反,可以把表达式放入一对圆括号中,再把操作符!放到它的前面。例如,!(x < y)表示"x不小于y"。由于if-else语句中的布尔表达式必须包含在一对圆括号中,所以在if-else语句中使用求反表达式时,要再用一对圆括号封闭求反表达式。例如,if-else语句可能这样开始:
- if (!(x < y))
- ...
可以避免使用!操作符。例如,上述if-else语句可更换成以下版本,它是等价的,而且更容易理解:- if (x >= y)
- ...
本书很晚的时候才会真正用到!操作符,届时将更详细地讨论。
我们有时希望if-else语句中的一个备选行动不做任何事情。在C++(www.cppentry.com)中,这可以通过省略else部分来实现。这种形式的语句称为if语句,以区别于if-else语句。例如,以下两个语句中的第一个语句就是if语句:
- if (sales >= minimum) // 如果实际销售额大于或等于公司规定的最小值,
- salarysalary = salary + bonus; // 就把奖金加上
- cout << "salary = $" << salary;
假如sales的值大于或等于minimum的值,就执行赋值语句,再执行后续的cout语句。但是,假如sales的值小于minimum,就不执行缩进的赋值语句。在这种情况下,if语句不会导致任何更改(也就是说,不会有奖金加到基本工资里),程序直接执行cout语句。