pour la condition suivante : if(1==2 AND 1==2 OR 1==1)
ca équivaut à : if((1==2 AND 1==2) OR 1==1)
mais pourquoi ca n'équivaut pas a if(1==2 AND (1==2 OR 1==1)) ??
quelles sont les règles ??
merci
-----
11/06/2017, 22h10
#2
pm42
Date d'inscription
juillet 2015
Messages
14 579
Re : priorité condition if
Tu peux voir AND comme une multipllication en binaire : si l'un des 2 est faux (0), le résultat aussi.
Tu peux voir OR comme une addition en binaire : pour avoir 0, il faut que les 2 soient faux. Si l'un des 2 est vrai, on a un résultat positif.
Et la multiplication a priorité sur l'addition.
C'est le truc mnémonique que j'utilise.
11/06/2017, 22h39
#3
invite1c6b0acc
Date d'inscription
janvier 1970
Messages
1 200
Re : priorité condition if
Idem.
Et j'ajouterait que dans le doute, il vaut mieux mettre des parenthèses : ça ne peut pas nuire ... (d'ailleurs gcc signale avec un warning une expression du style (a || b && c) )
11/06/2017, 23h29
#4
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : priorité condition if
Il faut chercher tout ça dans la norme du langage.
Et j'ajouterait que dans le doute, il vaut mieux mettre des parenthèses
C'est en effet la meilleure manière de lever les doutes.
Aujourd'hui
A voir en vidéo sur Futura
12/06/2017, 07h47
#5
invite9dc7b526
Date d'inscription
janvier 1970
Messages
6 220
Re : priorité condition if
Dans un cas comme celui-là je préfère mettre des parenthèses, ça a le mérite d'expliciter la logique (si j'ose dire) de la construction. Comme je n'ai plus beaucoup de mémoire ça m'aide...