Java: bool + int

Oct 18 2020

Existe-t-il un moyen de faire fonctionner Java avec l'ajout et l'évaluation de booléens / entiers? Plus précisément, C ++ a une fonctionnalité appropriée qui raccourcit de nombreuses instructions if.

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

Est équivalent à

while (n--)
    cout << n;

Ou, au lieu de:

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

On peut avoir

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

Existe-t-il un moyen de faire quelque chose de similaire en Java?

Réponses

3 ArvindKumarAvinash Oct 18 2020 at 17:02

Vous pouvez utiliser l'opérateur ternaire en Java pour le même effet.

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);
    }
}

Production:

0
1
Polygnome Oct 18 2020 at 17:06

Le code est plus souvent lu qu'écrit. Bien que vous puissiez utiliser l'opérateur ternaire, la sémantique de ceci se résume à n'augmenter que countsi elle xest égaley . Donc, la manière la plus lisible d'écrire ceci serait d'utiliser:

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

Faire des trucs comme count += (x==y)dans d'autres langues est déjà à mon avis de mauvaises pratiques car cela obscurcit la logique. Optimisez pour la lecture, pas pour l'écriture.