IF ... THEN ... ELSE

GW-Basic, utilisé par PC-Basic
Exemple de programmation

PC-BASIC

Pour prendre une décision concernant le déroulement du programme en fonction du résultat renvoyé par une expression.

Syntaxe:

IF expression[,] THEN statement(s)[,][ELSE statement(s)]
 IF expression[,] GOTO line number[[,] ELSE statement(s)]

Commentaires:

Si le résultat de l'expression est différent de zéro (vrai logique), le numéro de ligne THEN ou GOTO est exécuté.

Si le résultat de l'expression est zéro (faux), le numéro de ligne THEN ou GOTO est ignoré et le numéro de ligne ELSE, s'il est présent, est exécuté.

Sinon, l'exécution continue avec la prochaine instruction exécutable. Une virgule est autorisée avant THEN et ELSE.

THEN et ELSE peuvent être suivis soit d'un numéro de ligne pour le branchement, soit d'une ou plusieurs instructions à exécuter.

GOTO est toujours suivi d'un numéro de ligne.

Si l'instruction ne contient pas le même nombre de numéros de ligne ELSE et THEN, chaque ELSE est mis en correspondance avec le THEN sans correspondance le plus proche.

Par exemple:

IF A=B THEN IF B=C THEN PRINT "A=C" ELSE PRINT "A < > C"

n'imprimera pas "A < > C" quand A < > B.

Si une instruction IF...THEN est suivie d'un numéro de ligne en mode direct, une erreur "Numéro de ligne non défini" se produit, sauf si une instruction avec le numéro de ligne spécifié a été précédemment entrée en mode indirect.

Étant donné que IF ..THEN...ELSE est une seule instruction, la clause ELSE ne peut pas figurer sur une ligne distincte. Tout doit être sur une seule ligne.

Imbrication des instructions IF

Les instructions IF...THEN...ELSE peuvent être imbriquées. L'imbrication n'est limitée que par la longueur de la ligne.

Par exemple, voici une déclaration légale :

100 IF X > Y THEN PRINT "GREATER" ELSE IF Y > X THEN & 
110 PRINT "LESS THAN"
200 ELSE PRINT "EQUAL"

Tester l'égalité

Lorsque vous utilisez IF pour tester l'égalité d'une valeur résultant d'un calcul en virgule flottante, n'oubliez pas que la représentation interne de la valeur peut ne pas être exacte. Par conséquent, testez par rapport à la plage sur laquelle la précision de la valeur peut varier.

Par exemple, pour tester une variable calculée A par rapport à la valeur 1,0, utilisez l'instruction suivante :

IF ABS (A-1.0)<1.0E-6 THEN ...
Ce test renvoie vrai si la valeur de A est 1,0 avec une erreur relative inférieure à 1,0E-6.

Exemples:

L'instruction suivante obtient le numéro d'enregistrement N, si N n'est pas zéro.

200 IF N THEN OBTENIR#1, N

Dans l'exemple suivant, un test détermine si N est supérieur à 10 et inférieur à 20. Si N est dans cette plage, DB est calculé et l'exécution passe à la ligne 300. Si N n'est pas dans cette plage, l'exécution continue à la ligne 110.

100 IF (N<20) AND (N>10) THEN DB=1979-1 : GOTO 300
110 PRINT "HORS PLAGE"

L'instruction suivante entraîne l'envoi de la sortie imprimée soit vers le terminal, soit vers l'imprimante de ligne, selon la valeur d'une variable (IOFLAG). Si IOFLAG est égal à zéro, la sortie est dirigée vers l'imprimante; sinon, la sortie va au terminal.

210 IF IOFLAG THEN PRINT A$ ELSE LPRINT A$

 

 

 

 

 

 

 

Recherche personnalisée