J'ai un long jeu de comparaisons à faire en Java, et j'aimerais savoir si un ou plusieurs d'entre eux sont vrais. La chaîne de comparaisons était longue et difficile à lire, donc je l'ai cassé pour la lisibilité, et suis allé automatiquement à utiliser un opérateur de raccourci |=
plutôt que negativeValue = negativeValue || boolean
.Opérateur de raccourci "ou-affectation" (| =) en Java
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Je me attends negativeValue
pour être vrai si l'un de la valeur par défaut < quelque chose > valeurs sont négatives. Est-ce valide? Va-t-il faire ce que j'attends? Je ne pouvais pas le voir mentionné sur le site de Sun ou sur stackoverflow, mais Eclipse ne semble pas avoir de problème avec cela et le code se compile et s'exécute.
De même, si je voulais effectuer plusieurs intersections logiques, pourrais-je utiliser &=
au lieu de &&
?
Pourquoi ne l'essayez-vous pas? – Roman
Il s'agit d'une logique booléenne générale, pas seulement Java. donc vous pouvez le rechercher sur d'autres endroits. Et pourquoi tu ne l'essaies pas? – Dykam
@Dykam: Non, il y a un comportement spécifique ici. Java * pourrait * choisir de faire | = court-circuiter, de sorte qu'il n'évaluera pas le RHS si le LHS est déjà vrai - mais ce n'est pas le cas. –