主持if语句简短形式

时间:2013-07-25 12:44:24

标签: java

我想对if语句使用简短格式。怎么能在一行写下if语句?以及如何比较他们ı知道这里有相同的问题。但我的陈述没有其他所以如果没有其他声明就无法做到。

public int compareTo(Uyum u) {
            if (uyum < u.uyum)
                return -1;
            if (uyum > u.uyum)
                return 1;
            return 0;
        }

6 个答案:

答案 0 :(得分:4)

您可以使用三元运算符:

 return uyum < u.uyum ? -1 
      : uyum > u.uyum ? 1 
      : 0;

答案 1 :(得分:2)

您可能想要:

return a < b ? -1 : (a > b ? 1 : 0);

答案 2 :(得分:1)

你可以写下这个:

public int compareTo(Uyum u){

return uyum - u.uyum;

}

答案 3 :(得分:0)

如果您有两种状态,通常只需要内联if语句(问号)。代码的可读性非常重要。 在你的情况下,你有3个状态(0,1和-1);我不建议使用内联if语句。

示例内联if语句:

String value = variable==null?"defaultvalue":variable;

此if语句表示法称为ternary operator

答案 4 :(得分:0)

在我看来u.uyum是一个int,在这种情况下,为什么以下不满意?

return Integer.compare(uyum, u.uyum)

如果你真的必须使用三元运算符,你可以像其他人一样建议:

return uyum > u.uyum ? 1 : uyum == u.uyum ? 0 : -1

但这往往令人不悦,因为它并不是非常清晰。

答案 5 :(得分:0)

return (uyum-u.uyum)==0?0:((uyum-u.uyum)<0?-1:1)