IF |
Si ... Alors ... Sinon |
---|---|
Turbo Basic |
Syntaxe
IF test THEN #1 ELSE #2 |
IF test THEN #1 ELSE #2 END IF |
IF test THEN #1 ELSEIF test THEN #11 ELSE #2 END IF |
Paramètres
Nom | Description |
---|---|
test | Ce paramètre permet d'indiquer la condition de teste |
#1, #11 | Ce paramètre permet d'indiquer le groupe d'instruction si la condition est vrai |
#2 | Ce paramètre permet d'indiquer le groupe d'instruction si la condition est fausse |
Description
Cette commande permet d'effectuer un teste conditionnel.
Remarques
- Si expression entière est TRUE (correspond à un résultat différent de zéro), la ou les instructions suivantes, après THEN et avant tout événement ELSE facultatif, sont exécutées.
- Si expression est FALSE (résultat nulle), la ou les instructions suivant ELSE sont exécutées. Si la clause optionnelle ELSE est omise, l'exécution se poursuit avec la ligne suivante du programme. Généralement, l'expression entière sera un résultat renvoyé par un opérateur relationnel, bien que pas toujours, comme indiqué ici:
- Les deux points ne doivent pas apparaître avant le mot clef ELSE; par exemple, l'instruction suivante ne sera pas compilée :
- L'instruction IF et toutes ses instructions associées, y compris celles suivant un ELSE, doivent apparaître sur la même ligne logique. La situation suivante est donc illégal :
- Le Turbo Basic a étendu l'instruction IF THEN ELSE pour activer plusieurs lignes de code dans une construction IF THEN ELSE. Le Turbo Basic fournit également les instructions ELSEIF et END IF pour l'instruction de bloc IF.
- Le bloc IF est une extension de l'interpréteur BASIC, permettant plusieurs tests sur plusieurs lignes.
- Lors de l'exécution d'instructions de bloc IF, la vérité de l'expression dans l'instruction IF est vérifiée en premier. Si la valeur est FALSE (résultat nulle), chacune des instructions ELSEIF suivantes est examinée dans l'ordre (il peut y avoir autant d'instructions ELSEIF que vous le souhaitez). Dès que l'on juge que la condition est vrai, Turbo Basic exécute la ou les instructions suivant le THEN associé et passe à l'instruction juste après le END IF final sans effectuer de test supplémentaire. La ou les instructions après la clause ELSE facultative sont exécutées si aucun des tests précédents n'aboutit.
- Notez qu'il ne peut y avoir rien sur la première ligne d'un bloc IF après le mot-clef THEN; C'est ainsi que le compilateur peut distinguer un bloc IF d'une instruction IF conventionnelle.
- Si les instructions de bloc peuvent être imbriquées; c'est-à-dire que n'importe quelle instruction après l'un quelconque des THEN peut contenir des blocs IF.
- Les instructions de bloc IF doivent être terminées par END IF dans un bloc IF mais non dans un IF conventionnelle. Notez que END IF a un espace et ELSEIF n'en a pas.
IF printerOn THEN LPRINT answer$
Ici, l'instruction LPRINT est exécutée si la variable de drapeau printerOn a une valeur différente de zéro.
IF a < b THEN c = d : ELSE e = f
IF a < b THEN t = 15 : u = 16 : v = 17
ELSE t = 17 : u = 16 : v = 15
parce que le compilateur traite la deuxième ligne comme une nouvelle déclaration sans rapport avec celle la précédant. Si vous avez plus d'instructions à insérer que ne peut en contenir une ligne, vous pouvez utiliser le caractère de continuation de ligne, nommé le trait de soulignement (_), pour répartir une ligne logique unique sur plusieurs lignes physiques. Par exemple, voici une manière légale de reformuler le dernier exemple :
IF a < b THEN t = 15 : u = 16 : v = 17_
ELSE t = 17 : u = 16 : v = 15
Cependant, une meilleure alternative consiste à utiliser l'instruction de bloc IF. Vous pouvez également utiliser l'instruction de bloc IF pour former une série multiligne d'instructions IF.
Exemple
Cet exemple permet de tester une condition vrai :
on obtiendra le résultat suivant :
La condition est vraiVoir également
Les conditionnels du Turbo Basic
Références
INFOGUIDE - Turbo Basic, Editions P.S.I., Bénédicte Hudault, 1988, ISBN: 2-86595-531-1, page 63