Manuel Amos Professional  Sommaire  Index

Structures de Contrôle


GOSUB
structure : sauter vers une sous-routine
Gosub étiquette
Gosub numéro
Gosub expression

Des ensembles d'instructions effectuant une tâche précise peuvent être considérés comme des « routines ». Lorsque ces routines sont divisées en paquets plus petits, on parle alors de « sous-routines ». GOSUB est une commande ancienne, utilisée pour effectuer un saut vers une sous-routine. En fait, GOSUB est rendu obsolète par le système de procédures d'AMOS Professional, mais il peut être utile pour les utilisateurs de STOS qui souhaitent convertir leurs programmes.

Comme pour GOTO, il existe trois types de cibles possibles pour une instruction GOSUB : des étiquettes, des numéros de ligne ou des expressions.

Pour faciliter la lecture de vos sous-routines dans les listings de programmes, il est recommandé de les placer à la fin du programme principal. Une instruction comme EDIT ou DIRECT devrait aussi être utilisée pour clore le programme principal, afin d'éviter qu'AMOS Professional exécute des GOSUBs après la fin du programme principal.

RETURN
instruction : revenir d'une sous-routine appelée par GOSUB
Return

Lorsqu'un programme exécute une instruction GOSUB, il doit recevoir l'ordre RETURN pour revenir au programme principal après l'exécution de la sous-routine. Il faut noter qu'une seule instruction GOSUB peut être associée à plusieurs instructions RETURN, ce qui permet de quitter la routine à partir de différents points selon les circonstances. Après le RETURN, le programme saute à l'instruction suivant immédiatement le GOSUB initial. Par exemple :

E> Print "Je suis le programme principal"
   For N=1 To 3
    Gosub TEST
   Next N
   End
   TEST:
   Print "On y va avec GOSUB" : Wait 50
   Print "Numéro =";N
   Return

POP
instruction : supprimer les informations de retour
Pop

Normalement, vous ne pouvez pas sortir d'une instruction GOSUB en utilisant un GOTO classique, ce qui peut être contraignant. Par exemple, il peut y avoir une erreur qui rend inacceptable le retour à la

Précédent    Suivant
05.04.02