0

我从哈立德Mugal和其他人那里读到,条件运算符是正确的联想。关于java条件运算符的问题

有人可以向我解释这是什么意思,并给我一个简单的例子吗?

+1

在被你的问题直接哪一个领域计算机科学的? – travega 2011-04-27 04:35:10

+1

7个问题问,但没有收到答案! – Favonius 2011-04-27 05:38:31

回答

0

条件运算?:right associative因为右侧评估第一

Explaniation 条件运算的简单表达式是

condition ? value if true : value if false 

和示例是

boolean ? (10+20):(30+40) 

在任何情况下,或者真或假,它的评估/计算值在右侧,然后返回值accordin g至调节

Further Explaination 它在语法上是正确的缔合(其基团的从右到左),使得A B:C d:电子网:?克装置一样A B :(ΔCd:(E F:?G))。

还要考虑维基认定中

“的关联性(或固定性)的操作者是确定如何相同的优先级的操作员在不存在括号被分组的属性。”

希望帮助

+0

这没有意义,因为普通程序员会期望它先评估布尔表达式,然后决定评估相应的值。它毕竟是一个if/else结构的简短符号 – Gressie 2011-04-27 05:04:35

+0

public class RightAssociative { public static void main(String args []) { int i = 10; int j = true?0:++ i; System.out.println(i); } } //我根据你的值10而不是11,谢谢 – yagnya 2011-04-27 05:12:05

+0

@Gressie和@yagnya plz阅读“Further Explaination and see link” – Imran 2011-04-27 05:19:09

2

它是右结合的,因为它被指定为这样的Java Language Specs

条件运算符在语法上是右结合(这组从右到左)因此a?b:c?d:e?f:g的含义与a?b相同:(c?d:(e?f:g))。

从原来规格的报价提供了一个示例(或至少东西,可以用来用Java编写的快速main基于演示)

+0

谢谢Andreas .. – yagnya 2011-04-27 05:42:02