c# - 术语问题 : && operator

标签 c# operators boolean

好吧,我已经阅读了很多资料,但它们的定义不同:

  • && 是逻辑的逻辑运算符 conjunction//我想这是正确的

  • && 是逻辑与运算符//I 认为这不准确 技术观点

  • && 是 条件运算符执行 逻辑与//我认为这是对的 还有

虽然所有的理解都是正确的,但我会说第一个是最准确的。还是我弄错了?

最佳答案

在 C#、Java、C++、C 和其他几种语言中,&& 是 boolean AND 运算符的编程语言实现。它旨在解释以下事实(不适用于纯命题逻辑):

  • 计算操作数的计算量可能很大
  • 计算操作数可能会因异常而失败
  • 计算操作数可能会进入无限循环

因此,编程语言中的 boolean 表达式实际上有四种可能的结果:truefalse、“exception”和“infinite loop”。在某些情况下,一个人有两个 boolean 表达式,其中可以通过查看第一个表达式来确定第二个表达式是否成功。例如,对于表达式 foo != nullfoo.bar == 42,我们可以确定如果第一个表达式为假,那么第二个表达式将失败.因此,&& 运算符被设计为“短路”:如果左操作数的计算结果为假,则不计算右操作数。在所有两个操作数都成功评估为 true 或 false 的情况下,此规则产生的结果与实际评估两个操作数的结果相同,但它可以提高性能(因为可能根本不需要评估正确的操作数)和在不牺牲安全性的情况下增加紧凑性(如果注意构造表达式,使左操作数“保护”右操作数)。同样,如果左操作数的计算结果为真,|| 将不会计算右操作数。

一个更简短的答案是,虽然 && 受到 AND 的强烈启发,但它被设计为考虑到某些编程特性,并且 a && b 或许更应该被措辞作为“如果 a 为假则返回 false 的表达式,如果 a 为真则返回 b 的值”。

关于c# - 术语问题 : && operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674594/

相关文章:

dart - 是否可以让运算符在运算中使用先验值

java - 将所有大小为 n 的二进制字符串生成到 boolean 数组中的最快方法?

c# - 将关系数据库数据表示为 XML 并使用 XPath 获取结果

c# - MVC4 种子数据库外键 ID

c# - 使用 C# 中的类将数据保存到 SQL DB

javascript - JS生成随机 boolean 值

java - 为什么默认 boolean 返回值会影响我的测试结果

c# - C# 中的模拟退火

c# - 何时在 C# 中使用 Shift 运算符 << >>?

C#:简化许多类似的隐式运算符方法