c# - 之间的区别和||或 & 和 && 进行比较

标签 c# comparison operators

<分区>

Possible Duplicate:
A clear, layman’s explanation of the difference between | and || in 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)

最佳答案

在 C(可能还有其他语言)中,单个 |& 是按位比较。
||&& 是逻辑比较。
编辑:请务必阅读 Mehrdad 下面关于“无短路”的评论

在实践中,由于 true 通常等同于 1false 通常等同于 0,因此按位比较有时是有效的并且返回完全相同的结果

曾经有一个关键任务软件组件,我运行了一个静态代码分析器,它指出在应该进行逻辑比较的地方使用了按位比较。由于它是用 C 语言编写的,并且由于逻辑比较的安排,该软件与任何一个都可以正常工作。示例:

if ( (altitide > 10000) & (knots > 100) )
...

关于c# - 之间的区别和||或 & 和 && 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279217/

相关文章:

c# - 构造函数执行前的属性初始化

javascript - ES6 JS 中的扩展语法如何作为函数参数工作?

c# - 更新 Entity Framework 模型

c# - 如何检索 Azure 表中的顶行

perl - Perl 比 bash 快吗?

asp.net - GridView vs DataList vs Repeater vs ListView 的性能

Javascript:+= 运算符的奇怪行为

c - 有没有办法预测未定义的行为或实现定义的行为?

c# - 我想在另一个事件中调用一个 visual c# 事件。我怎么做?

c - 字符串比较和长度