-4

if 文の短縮形を使いたい。if 文を1 行で書くにはどうすればよいですか? そして、どうすればそれらを比較できますか?ここに同じ質問があることを知っています。しかし、私のステートメントにはelseがないので、elseステートメントなしではできませんでした。

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

6 に答える 6

2

あなたはおそらく欲しい:

return a < b ? -1 : (a > b ? 1 : 0);
于 2013-07-25T12:48:39.987 に答える
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

インライン if ステートメント (疑問符) は、通常、2 つの状態がある場合にのみ必要です。コードの可読性は非常に重要です。あなたの場合、3 つの状態 (0、1、-1) があります。インライン if ステートメントの使用はお勧めしません。

インライン if ステートメントの例:

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

この if 文の表記法を三項演算子と呼びます

于 2013-07-25T12:49:22.220 に答える
0

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

于 2013-07-25T12:58:56.880 に答える