Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于java中条件算子的几个问题_Java_Programming Languages_Operators_Conditional Operator - Fatal编程技术网

关于java中条件算子的几个问题

关于java中条件算子的几个问题,java,programming-languages,operators,conditional-operator,Java,Programming Languages,Operators,Conditional Operator,我从Khalid Mugal和其他人那里读到,条件运算符是右联想的 有人能给我解释一下这是什么意思,并给我举个简单的例子吗?条件运算符是因为右侧首先求值 解释 条件运算符的一个简单表达式是 condition ? value if true : value if false 一个例子是 boolean ? (10+20):(30+40) 在任何情况下,无论是true还是false,其右侧的求值/计算值都将首先根据条件返回值 : 它在语法上是右联想的(它从右向左分组),因此a?b:c?d:e?

我从Khalid Mugal和其他人那里读到,条件运算符是右联想的

有人能给我解释一下这是什么意思,并给我举个简单的例子吗?

条件运算符是因为右侧首先求值

解释 条件运算符的一个简单表达式是

condition ? value if true : value if false
一个例子是

boolean ? (10+20):(30+40)
在任何情况下,无论是true还是false,其右侧的求值/计算值都将首先根据条件返回值

它在语法上是右联想的(它从右向左分组),因此a?b:c?d:e?f:g与a?b:(c?d:(e?f:g)的意思相同

也考虑Wiki定义

“一个操作符的结合性(或固定性)是一个属性,它决定了在没有括号的情况下如何对相同优先级的操作符进行分组。”


希望对您有所帮助

它是正确的关联,因为它在以下文件中被指定为:

条件运算符在语法上是右联想的(它从右向左分组),因此a?b:c?d:e?f:g与a?b:(c?d:(e?f:g)的意思相同


原始规范中的引用提供了一个示例(或者至少是一些可以用来用Java编写基于
main
的快速演示的东西)

您的问题针对的是计算机科学的哪个领域?问了7个问题,但没有收到回答!!!!这是没有意义的,因为一般程序员都希望它首先计算布尔表达式,然后决定计算相应的值。它毕竟是if/else结构公共类RightAssociative{public static void main(String args[]){int i=10;int j=true?0:++i;System.out.println(i);}}//i值10,而不是根据u的11,thanks@Gressie@yagnya plz阅读“进一步解释,请参阅链接”@Imran您的进一步解释清楚地表明“未选择的操作数不会针对条件表达式的特定求值进行求值。”这证明了我的观点。(10+20)或(30+40)仅在布尔表达式指示其应该时才计算。不这样做会浪费计算时间,但我说的是评估路径。