EXIT
DESCRIPTION.
L'instruction EXIT force la sortie prématuré et inconditionnel d'une boucle d'instructions FOR, REPEAT ou WHILE.
SYNTAXE.
EXIT FOR
EXIT REPEAT
EXIT WHILE
REMARQUES.
L'instruction EXIT doit se trouver à l’intérieur d'une boucle d'instructions et ne doit jamais être utilisée seule :
- EXIT FOR doit se trouver dans une boucle d'instruction FOR / NEXT ;
- EXIT REPEAT doit se trouver dans une boucle d'instruction REPEAT / UNTIL ;
- EXIT WHILE doit se trouver dans une boucle d'instruction WHILE / ENDWHILE.
Après l'appel de l'instruction EXIT, le programme se poursuit à partir de l'instruction suivant la cloture du bloc d'instructions correspondante.
Un bloc d'instruction peut contenir plusieurs instruction de sortie prématurée EXIT, mais seule la première rencontrée sera exécutée.
Cas particulier : si plusieurs boucles pour tous, FOR / NEXT sont imbriquées, on pourra préciser quelle boucle d'instructions on souhaite quitter avec l'instruction composée EXIT FOR en indiquant l'identifiant de la variable à sa suite. Si il n'y a aucune référence à une variable, l'instruction EXIT FOR fera quitter la boucle d'instruction dans la quelle elle est présente.
FOR klongeur = 4 TO 8
PRINT "Longueur : " ; klongeur ; " et " ;
FOR klargeur = 2 TO 6
PRINT "Largeur : " ; klargeur
FOR khauteur = 3 TO 9
kvolume = klongeur * klargeur * khauteur
IF kvolume > 50 THEN EXIT FOR klargeur
PRINT kvolume ;
NEXT khauteur
NEXT klargeur
NEXT klongeur
PRINT klongeur ; klargeur ; khauteur
END
Si des boucles d'instructions de diverses natures sont imbriquées, une instruction EXIT pourra faire "sauter" le programme à la suite d'une boucle de nature différente à celle où elle est présente. Par exemple : si une instruction EXIT REAPEAT se trouve dans une boucle WHILE / ENDWHILE imbriquée dans une boucle REPEAT / UNTIL, elle même imbriqué dans une boucle FOR NEXT, le programme se poursuivra bien à la suite de l'instruction UNTIL, en sortant aussi de la boucle WHILE sans qu'aucue erreur ne soit retournée.
FOR kvaleur = 3 TO 6
PRINT "kvaleur : " ; STR$( kvaleur )
REPEAT
WHILE TRUE
FOR ktour = 1 TO 10
PRINT STR$( ktour ) ; " " ;
IF ktour > kvaleur THEN EXIT REPEAT
NEXT ktour
PRINT "Le double de " ; STR$( kvaleur ) ; " est " ; kvaleur * 2
ENDWHILE
PRINT "Le triple de " ; STR$( kvaleur ) ; " est " ; kvaleur * 3
UNTIL FALSE
PRINT "... fin. "
NEXT kvaleur
END
EXEMPLES.
1. Sortir prématurément d'une boucle pour tous.
FOR kvaleur = 0 TO 1000000
khasard = RND( 25 )
IF khasard > 20 THEN EXIT FOR
PRINT STR$( khasard ) ; " " ;
NEXT kvaleur
PRINT " et pour finir " ; STR$( khasard )
END
2. Sortir prématurément d'une boucle faire tant que.
REPEAT
khasard = RND( 25 )
IF khasard > 20 THEN EXIT REPEAT
PRINT STR$( khasard ) ; " " ;
UNTIL FALSE
PRINT " et pour finir " ; STR$( khasard )
END
3. Sortir prématurément d'une boucle tant que.
WHILE TRUE
khasard = RND( 25 )
IF khasard > 20 THEN EXIT WHILE
PRINT STR$( khasard ) ; " " ;
ENDWHILE
PRINT " et pour finir " ; STR$( khasard )
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.