2015-05-01 88 views
1

我正在學習Java並有一個簡單的問題。在Java中這是什麼意思「長度> = 0?長度:長度* -1」

在設置一類我看到的例子:

length >= 0 ? length : length * -1 

是什麼意思?

謝謝。

+2

可能重複(:)不起作用?;第二個或第三個操作數返回布爾值](http://stackoverflow.com/questions/19010399/java-ternary-operator-doesnt-work-second-or-third-operand-return-boolean) –

回答

3

即寫Math.abs(length)的hackish的方式。它計算使用Conditional Operation ?:length的絕對值(根據JLS)

條件運算符? :使用一個表達式的布爾值來決定應該評估其他兩個表達式中的哪一個。

2

這是在java中的ternary operator

ifTrue ? thanThis : otherwiseThis 
2

這是一個三元表達式。如果問號前的值爲true,則表達式等於問號後的第一個值(length)。如果問號前的值爲false,則表達式等於冒號後的值(length * -1)。

1

這就是Java三元運算符,這意味着

if(length>=0) { 
    length = length; 
} else { 
    length = length * (-1); 
} 
[Java的三元運算符的
+1

它很好,你擴展到一個如果你的例子中除了重新賦值長度。也許改變這個回報。 – slipperyseal

相關問題