Page 1 sur 1

If (a=1 And b=1) Or (a=1 And c=1)

Publié : jeu. 10/nov./2005 14:21
par SPH
Bonjour a tous,
Que pensez vous de remplir une condition A et B __OU BIEN__ une condition A et C ?
Car ce code ne marche pas :

Code : Tout sélectionner

a=1
b=2
c=1

If a=1 And b=1 Or a=1 And c=1
Debug ("ok")
EndIf

Publié : jeu. 10/nov./2005 14:30
par Chris
Si, il marche, il faut mettre des parenthèses pour séparer les groupes

Code : Tout sélectionner

a=1 
b=2 
c=1 

If (a=1 And b=1) Or (a=1 And c=1) 
  Debug ("ok") 
EndIf

Publié : jeu. 10/nov./2005 14:34
par SPH
Ha zut alors, moi qui croyait que ca n'etait pas pris en compte. Bon, j'essaye ca...

Publié : jeu. 10/nov./2005 14:47
par Chris
C'est à toi de définir le niveau de priorité dans cette affaire.

Par exemple, cette condition sera vraie si:

a est égal à 1 et b est égal à 1
ou
a est égal à 1 et c est égal à 1

et à condition que

a soit égal à 1
et
d soit plus grand que 1 et plus petit que 3

Code : Tout sélectionner

a=1 
b=2 
c=1
d=2

If ((a=1 And b=1) Or (a=1 And c=1)) And (a=1 And (d>1 And d<3))
  Debug ("ok") 
EndIf
Et un aspirine... un! :lol:

Publié : jeu. 10/nov./2005 19:08
par Dr. Dri
mais dans son cas ca devrait fonctionner sans parenthèses parce que le And a une plus grande priorité que le Or (en tout cas en logique combinatoire ^^)

Maintenant qu'il y a un comparatif dans l'aide c'est l'occasion de regarder ^^

Dri

Publié : jeu. 10/nov./2005 19:42
par Chris
Non, le AND à le même niveau de priorité que le OR. (Pour Pure Basic...)

Et en plus, ils ont le niveau le plus bas :wink:

Code : Tout sélectionner

Niveau de priorité    |    Opérateurs
  --------------------+---------------------
         7  (maximum) |        ~
         6            |    <<, >>, %, !
         5            |       |, &
         4            |       *, /
         3            |       +, -
         2            | >, >=, <, <=, =, <>
         1  (minimum) |     And, Or

Publié : jeu. 10/nov./2005 20:16
par Dr. Dri
Enfin c'est bon à savoir...

Dri :(