ON exp-num GOSUB adresse-1 [,adresse-2] ...

Appelle un sous-programme en fonction de la valeur d’une expression.

Paramètre Description
exp-num Expression numérique entière
adresse-n Numéro de ligne ou étiquette

Exemple

10 INPUT "CHOIX (1-5)"; A%
20 IF A%=0 THEN END ELSE IFA%>5 THEN 10
30 ON A% GOSUB 100,110,120,130,140
40 GOTO 10
100 PRINT "1": RETURN
110 PRINT "2": RETURN
120 PRINT "3": RETURN
130 PRINT "4": RETURN
140 PRINT "5": RETURN

Suivant la valeur de la variable A% saisie au clavier, le programme effectue un saut à l’un des sous-programmes des lignes 100 à 140.

Action

L’instruction ON GOSUB permet d’effectuer un saut conditionnel à un sous-programme en fonction de la valeur de exp-num.

  • Si la valeur de exp-num est n, le saut s’effectue à la enième adresse indiquée dans la liste ; l’adresse du sous-programme appelé peut être définie par un numéro de ligne ou par une étiquette.
  • Le cas échéant, exp-num est tronquée à sa partie entière. Si la valeur de celle-ci est nulle ou supérieure au nombre d’adresses spécifiées, une erreur 32 est signalée ; si l’adresse sélectionnée n’existe pas, une erreur 60 est produite.

Aucune instruction ne doit suivre ON GOTO dans les lignes à instructions multiples.

Voir aussi : GOSUB