
|
|
|
QBasic - Structure conditionnelle
|
Autre langage disponible pour cet article :
Rubrique : QBasic
lundi 25 mars 2002 18:44
|
Voir les commentaires pour QBasic - Structure conditionnelle
|
Nous avons vu que la sortie d'une boucle peut être définie par une condtion. Nous allons voir dans ce chapitre
les CONDITIONS, tout court.
La condition évalue si une expression peut être considéré comme vrai ou fausse, et execute la ou les instructions
selon le cas. On n'utilise pour cela la structure IF...THEN...ELSE. La syntaxe est différente suivant que
l'on ai une ou plusieurs instructions.
- Avec une instruction : La condition s'écrit en une ligne. Imaginez que l'on ai à tester une
variable '
Age', comme dans l'exemple du chapitre précédent :
INPUT "Quel est votre âge ?", Age
IF Age > 18 THEN PRINT "Vous êtes majeur"
' SI Age > 18 ALORS "Vous êtes majeur"
Décomposons. Tout d'abord, le mot clef IF (si en Anglais). Puis l'expression à évaluer. Ici,
l'expression est considérée comme VRAI si la variable 'Age' est supérieur à 18. SI la
variable 'Age' est supérieur à 18, ALORS (THEN) on execute l'instruction placé après THEN.
Dans cette exemple, c'est PRINT "Vous êtes majeur".
On aurrait pu completer cet exemple avec ELSE. ELSE signifie Autre :
INPUT "Quel est votre âge ?", Age
IF Age > 18 THEN PRINT "Vous êtes majeur" ELSE PRINT "Vous êtes mineur"
' SI Age > 18 ALORS Vous êtes majeur SINON Vous êtes mineur
Avec cette condition, SI (IF) Age est supérieur à 18, ALORS (THEN)
on execute PRINT "Vous êtes majeur" SINON (ELSE) on execute l'autre instruction,
PRINT "Vous êtes mineur".
L'instruction après ELSE peut être une condition. Mais il est préférable, pour des raisons de clarté,
d'utiliser l'autre syntaxe de IF...THEN...ELSE.
- Avec plusieurs instruction : Dans l'exemple ci-dessus, il n'y avait que l'instruction
PRINT
a executer. Mais il arrive que les instructions se multiplient. Comme il serait peu astucieux d'écrire
autant de conditions qu'il y a d'instructions, nous allons adopter une autre syntaxe un peu différente
de IF...THEN...ELSE :
INPUT "Quel est votre âge ?", Age
IF Age < 18 THEN ' SI Age < 18 ALORS :
PRINT "Tu es mineur" ' Instruction 1
PRINT "L'accès à ce service t'es interdit" ' Instruction 2
PRINT "Reviens quand tu portera des caleçons" ' Instruction 3
ELSE ' SINON :
PRINT "C'est bon vous êtes majeur" ' Instruction 1
PRINT "Vous pouvez avoir accès à ce service" ' Instruction 2
ENDIF ' FIN de la
' structure conditionnelle
Avec une tel structure, on peut également ajouter une condition supplémentaire avec ELSEIF.
On aurrait pu compléter le programme précedent ainsi :
INPUT "Quel est votre âge ?", Age
IF Age < 18 THEN ' SI Age < 18 ALORS :
PRINT "Tu es mineur" ' Instruction 1
PRINT "L'accès à ce service t'es interdit" ' Instruction 2
PRINT "Reviens quand tu portera des caleçons" ' Instruction 3
ELSEIF Age > 65 THEN ' SI Age > 65 ALORS :
PRINT "Vous êtes trop vieux pour ça!" ' Instruction 1
PRINT "Rentrez sagement chez vous" ' Instruction 2
ELSE ' SINON :
PRINT "C'est bon vous êtes majeur" ' Instruction 1
PRINT "Vous pouvez avoir accès à ce service" ' Instruction 2
ENDIF ' FIN de la
' structure conditionnelle
De la même façon qu'avec les boucles, on peut imbriquer plusieurs blocs IF...THEN...ELSE l'un
dans l'autre :
INPUT "Quel est votre sexe (H ou F) ?", Sexe$
INPUT "Quel est votre age ?", Age
IF Sexe$ = "H" THEN ' Début du premier Bloc
IF Age > 18 THEN ' Bloc imbriqué
PRINT "Vous êtes un Homme majeur"
ELSE
PRINT "Vous êtes un Homme mineur"
ENDIF
ELSEIF Sexe$ = "F" THEN ' Deuxième condition du premier Bloc
IF Age > 18 THEN ' Bloc imbriqué
PRINT "Vous êtes une Femme majeur"
ELSE
PRINT "Vous êtes une Femme mineur"
ENDIF
ELSE ' Autres cas (!)
PRINT "Votre sexe reste indéterminé et vous êtes un mystère pour nous."
PRINT "Veuillez réessayer"
RUN
ENDIF
Remarque
Le THEN peut être optionnel dans certains cas. Si au lieu d'une instruction, on avait eu un
GOTO, on aurrait pu s'en passer :
INPUT "Quel est votre âge ?", Age
IF Age > 18 GOTO Majeur
END ' Fin du programme
Majeur:
PRINT "Vous êtes majeur"
|
Voir les commentaires pour QBasic - Structure conditionnelle
|
|
|
|