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

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
SPH
Messages : 4966
Inscription : mer. 09/nov./2005 9:53

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

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
Avatar de l’utilisateur
SPH
Messages : 4966
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Ha zut alors, moi qui croyait que ca n'etait pas pris en compte. Bon, j'essaye ca...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Enfin c'est bon à savoir...

Dri :(
Répondre