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