LES OPERATEURS LOGIQUES
LISTE DES MOTS CLÉS SPÉCIFIQUES.
Mots clés du BBC BASIC.
= : relation d'égalité entre 2 valeurs.
== : similaire à =.
<> : relation d'inégalité entre 2 valeurs.
> : relation de supériorité stricte entre 2 valeurs.
>= : relation de supériorité ou d'égalité entre 2 valeurs.
< : relation d'infériorité stricte entre 2 valeurs.
>= : relation d'infériorité ou d'égalité entre 2 valeurs.
AND : ET logique.
EOR : OU exclusif logique.
NOT : NON logique.
OR : OU inclusif logique.
GÉNÉRALITÉS.
Un ordinateur exécute un programme instruction après instruction dans l'ordre où les instructions sont présentes dans ce programme. Cependant, selon les données saisies par l'utilisateur, ou les résultats d'une opération sur ces données ou des données internes, il sera nécessaire "de sauter" une partie du code ou "d'aiguiller" la suite de la procédure vers une autre partie du script, voire d'exécuter une fonction plutot qu'une autre. C'est ce que l'on nomme : controle du flux conditionnel, car il faudra comparer une ou plusieurs conditions pour poursuivre convenablement l'application.
Une expression compare 2 valeurs, placées à droite et à gauche d'un opérateur relationnel. Si la relation entre les 2 valeurs correspondent à l'opérateur employé, BBC Basic retourne vrai (TRUE), c'est-à-dire la valeur -1, sinon il retourne faux (FALSE), c'est-à-dire la valeur 0.
Les tests logiques comparent si 2 expressions, placées à droite et à gauche d'un opérateur logique, sont identiques ou différentes. Si la comparaison est vérifiée, le test logique retourne vrai (TRUE), c'est-à-dire la valeur -1, sinon il retourne faux (FALSE), c'est-à-dire la valeur 0.
Voir l'instruction IF pour plus de détails sur les tests logiques.
LES OPÉRATEURS RELATIONNELS.
A = B : ⇨ vaut TRUE si A et B sont équivalents.
A <> B : ⇨ vaut TRUE si A et B sont différents.
A > B : ⇨ vaut TRUE si A est strictement supérieur à B.
A >= B : ⇨ vaut TRUE si A est supérieur ou équivalent à B.
A < B : ⇨ vaut TRUE si A est strictement inférieur à B.
A <= B : ⇨ vaut TRUE si A est inférieur ou équivalent à B.
Où A et B peuvent être des variables ou des valeurs brutes.
Le BBC basic évalue un test logique en retournant la valeur :
- -1, si la relation entre A et B est vraie (TRUE) ;
- 0, si la relation entre A et B est fause (FALSE).
PRINT 5 = 5 : REM --- retourne -1
PRINT 5 = 2 : REM --- retourne 0
PRINT 5 < 2 : REM --- retourne 0
PRINT 5 <= 2 : REM --- retourne 0
PRINT 5 > 2 : REM --- retourne -1
PRINT 5 >= 2 : REM --- retourne -1
PRINT 5 < 5 : REM --- retourne 0
PRINT 5 <= 5 : REM --- retourne -1
PRINT 5 > 5 : REM --- retourne 0
PRINT 5 >= 5 : REM --- retourne -1
PRINT 5 <> 5 : REM --- retourne 0
PRINT 5 <> 2 : REM --- retourne -1
ktest = ( 5 = 5 ) : PRINT ktest : REM --- retourne -1
ktest = ( 5 = 2 ) : PRINT ktest : REM --- retourne 0
ktest = ( 5 <> 5 ) : PRINT ktest : REM --- retourne 0
ktest = ( 5 <> 2 ) : PRINT ktest : REM --- retourne -1
ktest = ( "5" = "5" ) : PRINT ktest : REM --- retourne -1
ktest = ( "5" = 5 ) : PRINT ktest : REM --- retourne une erreur : Type mismatch
kjours = 365
kmois = 12
kmois$ = "12"
PRINT kjours = 365 : REM --- retourne -1
PRINT kjours = 366 : REM --- retourne 0
PRINT kjours > kmois : REM --- retourne -1
PRINT kmois > kjours : REM --- retourne 0
PRINT 12 = kmois : REM --- retourne -1
PRINT kmois$ = "12" : REM --- retourne -1
PRINT kmois = VAL( kmois$ ) : REM --- retourne -1
PRINT kmois = kmois$ : REM --- retourne une erreur : Type mismatch
LES OPÉRATEURS LOGIQUES.
A AND B : ⇨ vaut TRUE si A et B sont évaluées TRUE.
A EOR B : ⇨ vaut TRUE si A ou si B est évaluée à TRUE, mais pas les 2.
NOT A : ⇨ vaut TRUE si A est évaluées FALSE.
A OR B : ⇨ vaut TRUE si A et/ou si B est évaluée à TRUE.
Où A et B sont des expressions qui sont évaluées à TRUE (-1) ou FALSE (0).
kvies = 1
ksante = 3
REPEAT
PRINT "nombre de vie(s) : " ; kvies , " avec une sante de " ; ksante ; " points."
PRINT "kvies = 1 AND ksante = 2 retourne " ; kvies = 1 AND ksante = 2
PRINT "kvies = 1 OR ksante = 2 retourne " ; kvies = 1 OR ksante = 2
PRINT "kvies = 1 EOR ksante = 2 retourne " ; kvies = 1 EOR ksante = 2
PRINT "ksante = 2 retourne " ; ksante = 2 ;
PRINT " mais NOT (ksante = 2) retourne " ; NOT ( ksante = 2 )
ksante -= 1
UNTIL ksante < 1
END
retourne :
nombre de vie(s) : 1 avec une sante de 3 points.
kvies = 1 AND ksante = 2 retourne 0
kvies = 1 OR ksante = 2 retourne -1
kvies = 1 EOR ksante = 2 retourne -1
ksante = 2 retourne 0 mais NOT (ksante = 2) retourne -1
nombre de vie(s) : 1 avec une sante de 2 points.
kvies = 1 AND ksante = 2 retourne -1
kvies = 1 OR ksante = 2 retourne -1
kvies = 1 EOR ksante = 2 retourne 0
ksante = 2 retourne -1 mais NOT (ksante = 2) retourne 0
nombre de vie(s) : 1 avec une sante de 1 points.
kvies = 1 AND ksante = 2 retourne 0
kvies = 1 OR ksante = 2 retourne -1
kvies = 1 EOR ksante = 2 retourne -1
ksante = 2 retourne 0 mais NOT (ksante = 2) retourne -1
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.