Java:bool + int

Oct 18 2020

ブール/整数の加算と評価でJavaを機能させる方法はありますか?より具体的には、C ++には、多くのifステートメントを短縮する適切な機能があります。

for (int i = 0; i < n; ++i)
    cout << i;

と同等です

while (n--)
    cout << n;

または、代わりに:

for (int i = 0; i < n; ++i)
    if (x == y)
        count++;

1つを持つことができます

for (int i = 0; i < n; ++i)
    count += (x==y);

Javaと同様のことをする方法はありますか?

回答

3 ArvindKumarAvinash Oct 18 2020 at 17:02

同じ効果を得るために、Javaで三項演算子を使用できます。

public class Main {
    public static void main(String[] args) {
        int x = 5, y = 10, count = 0;
        count += x == y ? 1 : 0;
        System.out.println(count);

        x = 10;
        count += x == y ? 1 : 0;
        System.out.println(count);
    }
}

出力:

0
1
Polygnome Oct 18 2020 at 17:06

コードは書かれるよりも読まれることが多いです。三項演算子を使用できますが、これのセマンティクスは、等しい場合にのみ増加countすることにxなりyます。したがって、これを書くための最も読みやすい方法は、以下を使用することです。

for (int i = 0; i < n; ++i)
   if (x == y) count++;

count += (x==y)他の言語のようにトリックを行うことは、ロジックを曖昧にするため、すでに悪い習慣です。書き込みではなく、読み取り用に最適化します。