C# 布尔逻辑
19世纪中叶的英国数学家乔治•布尔(George Boole)为布尔逻辑奠定了基础。
例如,考虑下述情形:要根据变量myVal的值是否小于10来确定是否执行代码。为此, 需要确定语句“myVal小于10” 的真假,即需要了解比较的布尔结果。
布尔比较需要使用布尔比较运算符(也称为关系运算符),如表所示。
运算符 | 类 别 | 示例表达式 | 结果 |
== | 二元 | varl = var2 = = var3; | 如果var2等于var3, varl的值就是true,否则 为 false |
r= | 二元 | varl = var2 != var3; | 如果var2不等于var3, varl的值就是true,否 则为fclse |
< | 二元 | varl = var2 < var3; | 如果var2小于var3, varl的值就是true,否则 为 fhise |
> | 二元 | varl = var2 > var3; | 如果var2大于var3, varl的值就是true,否则 为 fiilse |
<= | 二元 | varl = var2 <= var3; | 如果var2小于或等于var3,varl的值就是true, 否则为fclse |
>= | 二元 | varl = var2 >= var3; | 如果var2大于或等于var3, varl的值就是true, 否则为fclse |
在上表中,varl都是bool类型的变量,var2和var3则可以是不同类型。
在代码中,可以对数值使用这些运算符:
bool isLessThanlO; isLessThanlO = myVal < 10;
如果myVal存储的值小于10,这段代码就给isLessThanlO赋予true值,否则赋予felse值。
也可以对其他类型使用这些比较运算符,例如字符串:
bool isBenjamin;
isBenjamin = myString == "Benjamin";
如果myString存储的字符串是“Benjamin”,isBenjamin的值就为true。
也可以对布尔值使用这些运算符:
bool isTrue;
isTrue = myBool == true;
但只能使用=和!=运算符。
注意:
错误地认为当vall<val2为fiilse时,vail >val2 true,则会导致一个常见的代码错误....如果‘val.l. = val2, 那么前两条语句’都是'fclsL •
&和丨运算符也有两个类似的运算符,称为条件布尔运算符。
运算符 | 类别 | 示例表达式 | 结果 |
&& | 二元 | varl = var2 && var3; | 如果var2和var3都是true,varl的值就是true,否则为false (逻辑与) |
II | 二元 | varl = var21| var3; | 如果vai2或var3是true(或两者都是),varl的值就是tiue,否 则为&ke (逻_ |
这些运算符的结果与&和丨完全相同,但得到结果的方式有一个重要区别:其性能更好。两者都是检查第 —个操作数的值(上表中的var2),如果已经能判断结果,就根本不必处理第二个操作数(上表中的var3)。
如果&&运算符的第一个操作数是false,就不爾要考虑第二个操作数的值_f,因为无论第二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true, ||运算符就返回true,不必再考虑第二个操作数的值。
点击加载更多评论>>