我正在學習Java並有一個簡單的問題。在Java中這是什麼意思「長度> = 0?長度:長度* -1」
在設置一類我看到的例子:
length >= 0 ? length : length * -1
是什麼意思?
謝謝。
我正在學習Java並有一個簡單的問題。在Java中這是什麼意思「長度> = 0?長度:長度* -1」
在設置一類我看到的例子:
length >= 0 ? length : length * -1
是什麼意思?
謝謝。
即寫Math.abs(length)
的hackish的方式。它計算使用Conditional Operation ?:的length
的絕對值(根據JLS)
條件運算符? :使用一個表達式的布爾值來決定應該評估其他兩個表達式中的哪一個。
?
是Java三元運算符。見http://alvinalexander.com/java/edu/pj/pj010018
本質上,它具有形式:
[condition] ? [execute if true] : [execute if false]
這是在java中的ternary operator
。
ifTrue ? thanThis : otherwiseThis
這是一個三元表達式。如果問號前的值爲true
,則表達式等於問號後的第一個值(length
)。如果問號前的值爲false
,則表達式等於冒號後的值(length * -1
)。
這就是Java三元運算符,這意味着
if(length>=0) {
length = length;
} else {
length = length * (-1);
}
[Java的三元運算符的
它很好,你擴展到一個如果你的例子中除了重新賦值長度。也許改變這個回報。 – slipperyseal
可能重複(:)不起作用?;第二個或第三個操作數返回布爾值](http://stackoverflow.com/questions/19010399/java-ternary-operator-doesnt-work-second-or-third-operand-return-boolean) –