2014-02-23 52 views
-1

我正在閱讀我的教授推薦的Java程序,並着眼於當我遇到這一行編程時每條線是如何工作的。該程序處理分數,這一行出現在用來確定最大公約數的方法中。混淆我的部分是括號內的編碼,因爲我不確定什麼是「?」除了「頂部:底部」之外還會這樣做。如果有人能解釋這是什麼,我將不勝感激!「int min =(top <bottom?top:bottom);」準確地做?

+0

請注意,在本聲明中,parens是不必要的 – fge

回答

2
int min; 
if (top < bottom) 
    min = top; 
else 
    min = bottom; 

與上面相同的代碼

0
if (top<bottom)min=top 
else min=bottom 
1

這就是所謂的一個ternary operator,基本上它是

if (top < bottom) { 
    min = top; 
} else { 
    min = bottom; 
} 
0

速記也就是說,如果then語句執行內聯三元運算符

0

它是三元操作符(不一定專用於Java;它也用於其他編程語言)。

在Java中,它是接受3個操作數的唯一操作符。其實際作用是:

- 給a ? b : c

- 評估a,這應該是一個布爾表達式

- 如果atrue,那麼整個操作返回b

- 否則返回c

+1

請注意它是**一個**三元操作符,而不是**三元操作符。它的真名是[條件操作符](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.25)。 –