QBasic – Structure conditionnelle
- QBasic – Introduction au QBasic
- QBasic – Ecrire sur l’écran
- QBasic – Mathématiques élémentaires
- QBasic – La ponctuation (syntaxe)
- QBasic – Les variables
- QBasic – Les commentaires
- QBasic – Les constantes
- QBasic – Entrée de données
- QBasic – Les boucles inconditionnelles
- QBasic – Les boucles conditionnelles
- QBasic – Structure conditionnelle
- QBasic – Les cas
- QBasic – Maths, logique et divers
- QBasic – Le texte
- QBasic – Le son
- QBasic – Dessiner
- QBasic – Sous-programmes, fonctions et procedures
- QBasic – Les types de variables
- QBasic – Les tableaux
- QBasic – Les types personalisés
- QBasic – L’organisation des données
- QBasic – QBasic et le système d’exploitation
- QBasic – L’accès aux fichiers
- QBasic – Le traitement des erreurs
- QBasic – La manette de jeu
- QBasic – Encore plus loin dans le graphisme
- QBasic – La mémoire
- QBasic – Le langage machine et la souris
- QBasic – L’heure, la date, le temps
- QBasic – Le clavier
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 clefIF(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èsTHEN.
Dans cette exemple, c’estPRINT « Vous êtes majeur ».
On aurrait pu completer cet exemple avec ELSE.ELSEsignifie 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)Ageest supérieur à18, ALORS (THEN)
on executePRINT « Vous êtes majeur »SINON (ELSE) on execute l’autre instruction,.
PRINT « Vous êtes mineur »
L’instruction aprèsELSEpeut être une condition. Mais il est préférable, pour des raisons de clarté,
d’utiliser l’autre syntaxe deIF…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
deIF…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 blocsIF…THEN…ELSEl’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 unGOTO, on aurrait pu s’en passer :
INPUT « Quel est votre âge ? », Age
IF Age > 18 GOTO Majeur
END ‘ Fin du programmeMajeur:
PRINT « Vous êtes majeur »
Categories: QBasic
Avec l’avant-dernier programme (avant
Remarque), les phrases
« Votre sexe reste… » et
« Veuillez réessayer »
ne s’affichent pas, ou bien
quasi-subliminalement.
C’est chercher la petite bête
Tu peux mettre un SLEEP juste avant RUN par exemple :
PRINT « Votre sexe reste indéterminé et vous êtes un mystère pour nous. »
PRINT « Veuillez réessayer »
SLEEP
RUN
Raphaël