在Java中这是什么意思“长度> = 0?长度:长度* -1”

时间:2015-05-01 03:12:29

标签: java

我正在学习Java并且有一个简单的问题。

在设置课程的示例中,我看到了:

length >= 0 ? length : length * -1

这是什么意思?

感谢。

5 个答案:

答案 0 :(得分:3)

这是一种写作Math.abs(length)的hackish方式。它使用Conditional Operation ?:(根据JLS)计算length的绝对值

  

条件运算符? :使用一个表达式的布尔值来决定应该评估两个其他表达式中的哪一个。

答案 1 :(得分:2)

?是Java三元运算符。见http://alvinalexander.com/java/edu/pj/pj010018

基本上它有形式:

[condition] ? [execute if true] : [execute if false]

答案 2 :(得分:2)

这是java中的ternary operator

ifTrue ? thanThis : otherwiseThis

答案 3 :(得分:2)

这是一个三元表达。如果问号前的值为true,则表达式等于问号后面的第一个值(length)。如果问号前的值为false,则表达式等于冒号(length * -1)之后的值。

答案 4 :(得分:1)

这是Java三元运算符,它意味着

if(length>=0) {
     length = length;
} else {
     length = length * (-1);
}