首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >术语问题&&运算符

术语问题&&运算符
EN

Stack Overflow用户
提问于 2011-04-15 09:07:21
回答 2查看 179关注 0票数 1

嗯,我读了很多资料,但他们的定义不同:

  • &&是逻辑连接的逻辑运算符//我猜这是正确的,
  • && is运算符的逻辑和//我认为从技术角度来看这是不精确的,
  • &是执行逻辑的条件运算符,//我认为这也是正确的

虽然在理解上一切都是正确的,但我要说的是,第一个是最精确的。还是我搞错了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-15 09:36:00

在C#、Java、C++、C以及其他几种语言中,&&是布尔和运算符的编程语言实现。它旨在说明下列事实(不适用于纯粹的命题逻辑):

计算操作数的操作数( expensive

  • Evaluating exception

  • Evaluating )可能会导致操作数(
  • )失败,操作数可能进入无限循环(

)。

因此,编程语言中的布尔表达式实际上有四种可能的结果:truefalse、"exception“和”无穷循环“。在某些情况下,有两个布尔表达式,其中第二个表达式的成功与否可以通过查看第一个表达式来确定。例如,使用表达式foo != nullfoo.bar == 42,我们可以确定如果第一个表达式为false,则第二个表达式将失败。因此,&&运算符被设计为“短-圈”:如果左操作数计算为false,则不计算右操作数。在两个操作数将成功地计算为true或false的所有情况下,此规则产生的结果与实际计算两个操作数的结果相同,但它允许提高性能(因为右操作数可能根本不需要计算)并在不牺牲安全性的情况下增加紧凑性(如果要注意构造表达式,使左操作数“守卫”右操作数)。类似地,如果左操作数计算为true,则||将不会计算右操作数。

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

票数 3
EN

Stack Overflow用户

发布于 2011-04-15 09:11:05

连词是"and“的另一个词。所以它们的输出都是正确的。

就实际输出的方式而言,如果第一个参数是假的,&&通常不会计算第二个参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5674594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档