【发布时间】:2011-08-13 13:13:15
【问题描述】:
我从 Khalid Mugal 和其他人那里读到条件运算符是右结合的。
谁能给我解释一下这是什么意思并给我看一个简单的例子?
【问题讨论】:
-
您的问题涉及计算机科学的哪个领域?
-
问了 7 个问题,但没有收到答案!!!!
标签: java programming-languages operators conditional-operator
我从 Khalid Mugal 和其他人那里读到条件运算符是右结合的。
谁能给我解释一下这是什么意思并给我看一个简单的例子?
【问题讨论】:
标签: java programming-languages operators conditional-operator
条件运算符?: 是right associative,因为右侧首先计算
解释 条件运算符的一个简单表达式是
condition ? value if true : value if false
一个例子是
boolean ? (10+20):(30+40)
在任何情况下,无论是真还是假,它首先评估/计算右侧的值,然后根据条件返回值
Further Explaination: 它在语法上是右关联的(它从右到左分组),因此 a?b:c?d:e?f:g 的含义与 a?b:(c?d:(e?f:g ))。
还要考虑 Wiki 定义
“运算符的关联性(或固定性)是一个属性,它决定了相同优先级的运算符在没有括号的情况下如何分组强>。”
希望有帮助
【讨论】:
它是右关联的,因为它在 Java Language Specs: 中指定为这样:
条件运算符在语法上是右关联的(它从右到左分组),因此 a?b:c?d:e?f:g 与 a?b:(c?d:( e?f:g))。
原始规范中的引用提供了一个示例(或者至少是一些示例,可用于用 Java 编写基于 main 的快速演示)
【讨论】: