我正在学习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) –