x> y&& z == 5 - 这个表达式的部分是如何调用的?

时间:2010-08-12 12:53:31

标签: programming-languages terminology

我知道&&这里是逻辑运算符,左边和右边的条件都是操作数,对吧? 像:

1 + 1是一个表达式,其中+是运算符,数字是操作数。我只是不知道条件本身是否也被称为操作数,因为它被运算符比较。我想是的。+

由于

7 个答案:

答案 0 :(得分:6)

  

有哪些部分叫做?

>&&==都是运营商。操作数是传递给运算符的值。 xyz是最初的操作数。评估x > yz == 5后,这些布尔结果将用作&&运算符的操作数,这意味着表达式本身不是&&的操作数,这些表达式的评估结果是操作数

当您将操作数和运算符放在一起时,您会得到一个表达式(即x > yz == 5boolResult == boolResult

  

他们如何评估?

在大多数(如果不是全部)语言中,x > y将首先进行评估。

在支持短路的语言中,如果x > y为假,则评估将停止。否则,z == 5就是下一个。

同样,在支持短路的语言中,如果z == 5为假,评估将停止。否则,&&将会持续到位。

>&&==都是运营商。操作数是传递给运算符的值。 xyz是最初的操作数。评估x > yz == 5后,这些布尔结果将用作&&运算符的操作数。

答案 1 :(得分:2)

另一种选择是转向grammar of C#

它陈述如下:

conditional-and-expression   &&   inclusive-or-expression

将其概括为“表达式”可能足够准确:)

答案 2 :(得分:1)

如果您的问题确实是&&左右部分被调用的话,我会说“表达式”,也许是“布尔表达式”。

答案 3 :(得分:1)

条件,或||的情况:替代方案

答案 4 :(得分:0)

在c#中&&是一个运算符,左边和右边是表达式。在if语句中,如果left计算结果为true,则永远不会计算权限。

答案 5 :(得分:0)

这是一个布尔比较表达式,它由两个独立的布尔比较表达式组成。

根据语言的不同,解释方式取决于运算符优先级。因为它看起来像一个类似C的方言,我会假设&&是短路的。 (更多解释here)。

操作顺序将从左到右,因为相等测试者(>,> =,< =,==,!=)具有与布尔操作(&&,||)相同的优先级。 / p>

x> y将被评估,如果为真,则评估z == 5,然后将第一和第二结果进行AND运算。但是,如果x> y是假的,由于短路,表达式会立即返回false。

答案 6 :(得分:0)

你是{I}}和x>y是操作数,而z==5是操作符是正确的。另外,这两个操作数又包含它们自己的操作数和运算符。这些被称为复杂操作数

所以:

  • &&x>y是运营商z==5
  • 的操作数
  • &&x是运营商y
  • 的操作数
  • >z是运营商5
  • 的操作数

关于各个组成部分以及如何命名:

  • ====都是比较运算符,它们比较两个操作数的值。
  • >等于运算符,如果左操作数等于右操作数,则求值为true。
  • ==是一个大于的运算符,如果左操作数大于右操作数,则计算结果为true。
  • >逻辑运算符,特别是逻辑AND 。如果左右操作数均为真,则计算结果为true。

当引用每个操作数时,通过位置引用它们是标准的,即操作数和操作数 - 尽管有没有“官方”名称 - 第一和第二操作数同样有效。请注意,某些运算符(如&&)只有一个操作数,有些运算符甚至有3个(三元运算符,其形式为!