3.5 布尔表达式
if语句中包含在圆括号内的部分是布尔表达式(Boolean expression),有时也把它称为一个条件(conditional)。在代码清单3-28中,我们突出显示了布尔表达式。
代码清单3-28 布尔表达式
if (input < 9) |
布尔表达式在许多控制流语句中得到了运用,其关键特征在于总是求值为true或false。input<9要想成为一个布尔表达式,它必须返回一个bool值。例如,编译器不允许x=42,因为它的作用是对x进行赋值,并返回新值,而不是检查x的值是否等于42。
语言对比:C++ —— 错误地使用=来代替==
在C#中,布尔表达式的一个关键改进就是消除了C/C++历史上的一个常见的编码错误。在C++中,代码清单3-29是不会出错的。
代码清单3-29 C++允许将赋值作为布尔表达式
if(input=9) // COMPILE ERROR: Allowed in C++, not in C#. |
输出3-14展示了代码清单3-24的结果。
输出3-14
Enter the radius of the circle: 3 |
虽然上述代码表面上会检查input是否等于9,但正如第1章讲过的那样,=代表的是赋值运算符,而不是检查相等性的运算符。从赋值运算符返回的是赋给变量的值,本例中就是9。然而,作为一个int,9无法被判定为一个布尔表达式,所以是C#编译器不允许的。
| 回书目 上一节 下一节 |