Prenons un exemple simple d'un objet Cat
. Je veux être sûr que le "non nul" cat
est orange ou gris.En Java, quels sont les "ordres d'opérations" booléens?
if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
Je crois ET vient en premier, puis le OU. Je suis bien un peu floue, alors voici mes questions:
Quelqu'un peut-il me promener à travers cette déclaration, donc je suis sûr que je reçois ce qui se passe?
En outre, que se passe-t-il si j'ajoute des parenthèses; Est-ce que cela change l'ordre des opérations?
Est-ce que mon ordre des opérations va changer de langue à langue?
Si vous êtes du tout flou, ajoutez les parenthèses, c'est évident. –
Même si ce n'est pas flou pour vous, ajoutez les parenthèses afin que les autres puissent le comprendre aussi. –
De wikipedia sur la logique booléenne: Dans de tels cas [d'ambiguïté], des parenthèses peuvent être utilisées pour clarifier l'ordre des opérations. Comme toujours, les opérations au sein de la paire la plus interne sont effectuées en premier, suivies de la sortie de la paire suivante, etc., jusqu'à ce que toutes les opérations entre parenthèses soient terminées. Ensuite, toutes les opérations en dehors des parenthèses sont effectuées. – Stephano