【发布时间】:2010-08-12 12:53:31
【问题描述】:
我知道 && 是这里的逻辑运算符,左边和右边的条件也是操作数,对吧? 喜欢:
1+1 是一个表达式,其中 + 是运算符,数字是操作数。我只是不知道条件本身是否也称为操作数,因为它由运算符进行比较。我想是的。+
谢谢
【问题讨论】:
标签: programming-languages terminology
我知道 && 是这里的逻辑运算符,左边和右边的条件也是操作数,对吧? 喜欢:
1+1 是一个表达式,其中 + 是运算符,数字是操作数。我只是不知道条件本身是否也称为操作数,因为它由运算符进行比较。我想是的。+
谢谢
【问题讨论】:
标签: programming-languages terminology
零件叫什么?
>、&& 和 == 都是运算符。操作数是传递给运算符的值。 x、y 和 z 是初始操作数。一旦x > y 和z == 5 被求值,这些布尔结果将用作&& 运算符的操作数,这意味着表达式本身不是&& 的操作数,这些表达式的求值结果是操作数。
当您将操作数和运算符放在一起时,您会得到一个表达式(即x > y、z == 5、boolResult == boolResult)
他们是如何评估的?
在大多数(如果不是全部)语言中,x > y 将首先被评估。
在支持短路的语言中,如果x > y 为假,评估将停止。否则,z == 5 是下一个。
同样,在支持短路的语言中,如果z == 5 为假,评估将停止。否则,&& 将排在最后。
>、&& 和 == 都是运算符。操作数是传递给运算符的值。 x、y 和 z 是初始操作数。在计算 x > y 和 z == 5 后,这些布尔结果将用作 && 运算符的操作数。
【讨论】:
另一种选择是转向grammar of C#
它声明如下:
conditional-and-expression && inclusive-or-expression
将其概括为“表达式”可能就足够准确了:)
【讨论】:
如果你的问题真的是 && 的左右部分叫什么,我会说“表达式”,也许是“布尔表达式”。
【讨论】:
条件,或者在|| 的情况下:备选方案
【讨论】:
在 c# 中 && 是一个运算符,而 left 和 right 是表达式。在 if 语句中,如果左边的计算结果为 true,则永远不会计算右边。
【讨论】:
这是一个布尔比较表达式,由两个独立的布尔比较表达式组成。
根据语言,如何解释取决于运算符优先级。由于它看起来像一个类似 C 的方言,我假设 && 是短路 AND。 (更多解释here)。
操作顺序将从左到右,因为相等性测试器(>、>=、
x > y 将被评估,如果为真,则 z == 5 将被评估,然后第一个和第二个结果将被“与”在一起。但是,如果 x > y 为假,则表达式将立即返回假,因为短路。
【讨论】:
x>y 和 z==5 是操作数,&& 是运算符是正确的。此外,这两个操作数又包含它们自己的操作数和运算符。这些被称为复杂操作数
所以:
x>y 和 z==5 是运算符 && 的操作数
x 和 y 是运算符 > 的操作数
z 和 5 是运算符 == 的操作数
关于各个组成部分以及如何命名它们:
== 和> 都是比较运算符,它们比较两个操作数的值。== 是 相等 运算符,如果左操作数等于右操作数,则计算结果为 true。> 是 大于 运算符,如果左操作数大于右操作数,则计算结果为 true。&& 是一个逻辑运算符,特别是逻辑与。如果左右操作数都为真,则计算结果为真。当引用每个操作数时,标准是通过它们的 位置 来引用它们,即 left 操作数和 right 操作数 - 尽管有没有“官方”名称 - 第一个和第二个操作数同样有效。请注意,有些运算符如 ! 只有一个操作数,有些甚至有 3 个(三元运算符,其形式为 condition ? true_value : false_value
【讨论】: