-4

我想对 if 语句使用简写形式我怎么能在一行写 if 语句?以及我如何比较它们我知道这里有同样的问题。但是我的声明没有else所以如果没有 else 声明我就无法做到。

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

6 回答 6

4

您可以使用三元运算符:

 return uyum < u.uyum ? -1 
      : uyum > u.uyum ? 1 
      : 0;
于 2013-07-25T12:51:05.160 回答
2

你可能想要:

return a < b ? -1 : (a > b ? 1 : 0);
于 2013-07-25T12:48:39.987 回答
1

你可以简单地写这个:

公共 int compareTo(Uyum u) {

return uyum - u.uyum;

}

于 2013-07-25T12:52:58.773 回答
0

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

示例内联 if 语句:

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

这种 if 语句表示法称为三元运算符

于 2013-07-25T12:49:22.220 回答
0

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

return Integer.compare(uyum, u.uyum)

如果您真的必须使用三元运算符,您可以按照其他人的建议进行操作:

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

不过,这往往是不受欢迎的,因为它不是很清晰。

于 2013-07-25T12:57:16.963 回答
0

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

于 2013-07-25T12:58:56.880 回答