【问题标题】:x>y && z==5 - how are parts of this expression called?x>y && z==5 - 这个表达式的部分是如何调用的?
【发布时间】:2010-08-12 12:53:31
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: programming-languages terminology


    【解决方案1】:

    零件叫什么?

    >&&== 都是运算符。操作数是传递给运算符的值。 xyz 是初始操作数。一旦x > yz == 5 被求值,这些布尔结果将用作&& 运算符的操作数,这意味着表达式本身不是&& 的操作数,这些表达式的求值结果是操作数

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

    他们是如何评估的?

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

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

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

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

    【讨论】:

    • 有趣的是这个答案有多少赞成票。你们都没有读过这个问题。 :)
    • 那是因为不清楚到底是什么问题。我添加了更多信息来涵盖我看到的两个问题(一个在标题中,另一个在问题正文中)。
    【解决方案2】:

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

    它声明如下:

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

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

    【讨论】:

      【解决方案3】:

      如果你的问题真的是 && 的左右部分叫什么,我会说“表达式”,也许是“布尔表达式”。

      【讨论】:

        【解决方案4】:

        条件,或者在|| 的情况下:备选方案

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 你确定吗?我不认为它们被称为表达式,因为表达式是会导致假或真的整体。我认为运算符必须使用操作数。
          • 你说的没错,整体就是一个表达式。但是,如果您要在 if 语句中单独使用左和右,它们将是一个表达式。所以,你可能会说你在一个运算符之间有两个子表达式。
          【解决方案6】:

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

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

          操作顺序将从左到右,因为相等性测试器(>、>=、

          x > y 将被评估,如果为真,则 z == 5 将被评估,然后第一个和第二个结果将被“与”在一起。但是,如果 x > y 为假,则表达式将立即返回假,因为短路。

          【讨论】:

            【解决方案7】:

            x>yz==5 是操作数,&& 是运算符是正确的。此外,这两个操作数又包含它们自己的操作数和运算符。这些被称为复杂操作数

            所以:

            • x>yz==5 是运算符 && 的操作数
            • xy 是运算符 > 的操作数
            • z5 是运算符 == 的操作数

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

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

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

            【讨论】:

            • 谢谢。无论如何,说“运算符左侧的条件”是否正确?或者我需要说运算符左侧的操作数。请不要介意语法,只是意思:)
            猜你喜欢
            • 2019-01-07
            • 1970-01-01
            • 1970-01-01
            • 2011-11-05
            • 1970-01-01
            • 2017-12-27
            • 2012-01-04
            • 2013-02-26
            • 1970-01-01
            相关资源
            最近更新 更多