2015-05-01 90 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

相关问题