Syntaxe
Compare deux valeurs : égal, différent, inférieur, supérieur, inférieur ou égal, supérieur ou égal. Les nombres se comparent par valeur, le texte par codes de caractères.
<a> = <b>
<a> <> <b>
<a> < <b>
<a> > <b>
<a> <= <b>
<a> >= <b>
<a> == <b>
<a> != <b>S’écrit aussi : =, <>, <, >, <=, >=
Les éléments
| <a> | Un nombre ou une chaîne. |
|---|---|
| <b> | Une valeur de même nature. Une chaîne n'est jamais égale à un nombre. |
À savoir
- Dans
IF,WHILEetUNTIL, une comparaison est simplement vraie ou fausse. Rangée dans une variable, elle vaut 1 ou 0. Passée directement à une commande, elle vautTRUEouFALSE: Console(Str(a > 3)) affichetrue. - À droite d'une affectation,
=compare :same = (a = 5)ne modifie pasa. Les parenthèses sont facultatives, mais plus claires. - Entre les parenthèses d'un appel de commande,
=affecte : Console(Str(a = 1)) metaà 1, sans rien signaler. Comparez d'abord dans une variable ou dans unIF. =et<>sont stricts :"5"n'est pas5. Convertissez d'abord avec Val() ou Str().==et!=sont acceptés mais comparent de façon lâche, en convertissant texte et nombres ; préférez=et<>.- Le texte se compare dans l'ordre des codes de caractères, donc la casse compte :
"B" < "a"est vrai, et"apple" <> "Apple". - Les décimaux se comparent exactement :
0.1 + 0.2 = 0.3est faux. Comparez l'écart avec Abs() à une petite marge. 1 < x < 5signifie(1 < x) < 5, toujours vrai. Écrivezx > 1 AND x < 5.- Les graphies inversées d'autres BASIC,
=<,=>et><, se compilent mais le programme ne démarre pas. Écrivez<=,>=et<>.
Exemple
a = 5same = (a = 5)differ = (a <> 5)Console(Str(same) + " " + Str(differ)) ' 1 0loose = ("5" = 5)Console(Str(loose)) ' 0IF a >= 5 THEN Console("five or more") ' five or moreDans le manuel : Constantes et opérateurs