41 votes

Quelle est la façon la plus concise d'obtenir l'inverse d'une valeur booléenne Java ?

Si vous avez une variable booléenne :

boolean myBool = true;

Je pourrais obtenir l'inverse avec une clause if/else :

if (myBool == true)
 myBool = false;
else
 myBool = true;

Existe-t-il un moyen plus concis de le faire ?

106voto

BoltClock Points 249668

Affectez simplement en utilisant l'opérateur logique NOT ! comme vous avez tendance à le faire dans vos énoncés de condition (if for, while...). Vous travaillez déjà avec une valeur booléenne, donc elle va basculer de true à false (et vice versa) :

myBool = !myBool;

45voto

fortran Points 26495

Une façon encore plus cool (qui est plus concise que myBool = !myBool pour les noms de variables de plus de 4 caractères si vous voulez définir la variable) :

myBool ^= true;

Et d'ailleurs, n'utilisez pas if (something == true), c'est plus simple si vous faites simplement if (something) (de la même façon que comparer avec false, utilisez l'opérateur de négation).

1voto

Daniel Widdis Points 1516

La façon la plus concise est de ne pas inverser le booléen, et il suffit d'utiliser ! myBool plus tard dans le code lorsque vous voulez vérifier la condition opposée.

-3voto

Jinjavacoder Points 257
myBool = myBool ? false : true;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X