Java: bool + int
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
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
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.