Jos*_*ein 37 c# comparison operators
可能重复:
明确,外行解释|之间的区别 和|| 在c#?
与|比较有什么区别 和|| 在C#和Javascript中使用&&和&&?
例子:
if(test == test1 | test1 == test2) or if(test == test1 || test1 == test2)
if(test == test1 & test1 == test2) or if(test == test1 && test1 == test2)
Run Code Online (Sandbox Code Playgroud)
dus*_*ine 32
在C(和其他语言可能)单个|或是&按位比较.
双重||或是&&逻辑比较.
编辑:请务必阅读下面关于"没有短路"的Mehrdad评论
在实践中,由于true通常等同于1并且false通常等效0,因此按位比较有时可以是有效的并且返回完全相同的结果.
曾经有一个关键任务软件组件,我运行了一个静态代码分析器,它指出在逻辑比较应该使用的位比较.由于它是用C语言编写的,并且由于逻辑比较的安排,因此软件可以正常工作.例:
if ( (altitide > 10000) & (knots > 100) )
...
Run Code Online (Sandbox Code Playgroud)
Ric*_*lap 29
&和| 是按位运算符,可以对整数和布尔参数以及&&和||进行操作 是逻辑运算符,只能在布尔参数上运行.在许多语言中,如果两个参数都是布尔值,则关键区别在于逻辑运算符将执行短路评估,如果第一个参数足以确定答案,则不评估第二个参数(例如,在&&的情况下,如果第一个参数参数是假的,第二个参数是无关紧要的).
&和| 是||的二元运算符 和&&是布尔值.
差异很大:
(1&2)为0,false
(1 && 2)为真
| 归档时间: |
|
| 查看次数: |
126222 次 |
| 最近记录: |