布尔操作符(Boolean operator)是求值结果要么为true,要么为false的一种操作符。C#提供了几个非常有用的布尔操作符,其中最简单的是NOT(求反)操作符,它使用感叹号(!)来表示。!操作符求一个布尔值的反值。在上例中,假如变量areYouReady的值为true,那么表达式!areYouReady的求值结果就是false。
精品教程尽在www.xvna.com
理解相等和关系操作符
两个更常用的布尔操作符是相等(==)和不等(!=)操作符。利用这两个二元操作符,可以判断一个值是否与相同类型的另一个值相等。表1展示了这些操作符是如何工作的,其中以一个名为age的int变量为例。
表1 布尔操作符
操 作 符 | 含 义 | 示 例 | 结果(假定age = 42) |
== | 等于 | age == 100 | false |
!= | 不等于 | age != 0 | true |
操 作 符 | 含 义 | 示 例 | 结果(假定age = 42) |
&< | 小于 | age &< 21 | false |
&<= | 小于或等于 | age &<= 18 | false |
> | 大于 | age > 16 | true |
>= | 大于或等于 | age >= 30 | true |
短路求值 操作符&&和||都具备一项名为短路求值(short circuiting)的特性。有时,根本没有必要将两个操作数都求值出来。例如,假定操作符&&的左操作数求值为false,那么整个表达式的结果肯定是false,不管右操作数的值是什么。类似地,如果操作符||的左操作数求值为true,那么整个表达式的结果肯定是true。在这些情况下,操作符&&和||将绕过对右侧的布尔表达式的求值。下面是一些例子: (percent >= 0) && (percent &<= 100) 在这个表达式中,假如percent的值小于零,那么操作符&&左侧的布尔表达式会求值为false。该值意味着整个表达式的结果肯定为false,无论右侧的表达式是什么。所以,不会对右侧的表达式进行求值。 (percent &< 0) || (percent > 100) 在这个表达式中,如果percent的值小于零,操作符||左侧的布尔表达式会求值为true。该值意味着整个表达式的结果肯定为true。所以,不会对右侧的表达式进行求值。 如果能小心地设计表达式来使用条件逻辑操作符,就可以避免通过不必要的工作来提升代码的性能。将计算容易、简单的布尔表达式放到条件逻辑操作符的左边,将较复杂的表达式放到右边。在许多情况下,程序并不需要求值更复杂的表达式。 |
类 别 |
操 作 符 |
描 述 |
结 合 性 |
主要(Primary) |
() ++ -- |
覆盖优先级 后递增 后递减 |
左 |
一元(Unary) |
! + - ++ -- |
逻辑NOT 加 减 前递增 前递减 |
左 |
乘(Multiplicative) |
* / % |
乘 除 求余 |
左 |
加(Additive) |
+ - |
加 减 |
左 |
关系(Relational) |
&< &<= > >= |
小于 小于或等于 大于 大于或等于 |
左 |
相等(Equality) |
== != |
等于 不等于 |
左 |
条件AND(Conditional AND) |
&& |
逻辑AND |
左 |
条件OR(Conditional OR) |
|| |
逻辑OR |
左 |
赋值(Assignment) |
= |
右 |