Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BBC BASIC

ON GOTO

DESCRIPTION.


L'instruction ON ... GOTO provoquera un saut inconditionnel sans retour vers une ancre selon la valeur d'une référence.




SYNTAXE.


ON reference GOTO ancrea , ancreb , ... , ancren ELSE alternative




REMARQUES.


reference doit être un nombre entier strictement positif, supérieur à zéro. En général, reference sera l'identifiant d'une variable valide, mais reference peut aussi être une valeur retournée par une opération ou une fonction du BBC Basic ou personnalisée. Si reference est une valeur numérique autre qu'un entier, la partie décimale sera tronquée.


ancre doit être un emplacement du script identifiable par un numéro de ligne ou par une étiquette, label, existante et valide.


alternative peut être une ancre ou procédure personnalisée ou tout autre instruction valide du BBC BASIC. Si altenative est absente à la suite de l'instruction ELSE, le programme se poursuivra à l'instruction suivante. 


Note : la clause ELSE alternative est optionnelle mais vivement recommandée, car en son absence, si référence et en dehors des options prévues, une erreur se produira et le programme sera interrompu.


Les instructions composées ON ... GOTO permet de diriger la suite de l'application en fonction de la valeur de référence au moment de l'appel de l'instruction composée. Si la valeur de reference est inférieur à 1 ou si elle est supérieur aux options prévues à la droite de la clause GOTO, une erreur se produira arrêtant le programme, sauf si une clause ELSE est présente. 


Bien que le BBC BASIC for SDL 2.0 autorise toujours la numérotation des lignes d'un script, ou leur étiquetage à l'aide d'un label, pour identifier des ancres comme cibles pour les instructions GOTO , GOSUB et RESTORE, l'utilisation des instructions  GOTO et GOSUB ne devrait plus être utilisée dans les programmes modernes qui fournissent des instructions pour une programmation dite structurée. Se maintien est surtout dû à un soucis de rétrocompatibilité avec d'anciens scripts.


Rappel : une étiquette, ou label, doit être placée entre parenthèses : ( lab_Nom ) et figurer en premier sur une ligne de programme. Les étiquettes et les variables partageant le même espace de noms ; il faudra être très vigilant à ne pas utiliser un label pouvant être confondu avec l'identifiant d'une variable. Les labels sont de portée globale à l'ensemble du programme et ne peuvent être utilisés dans les modules importés par les instructions INSTALL et CALL. De même que pour la numérotation des lignes, Il est conseillé de les utiliser uniquement à des fins de débogage ou pour la rétrocompatibilité d'anciens programmes.


Le choix de l'instruction composée ON ... GOTO pour diriger le flux de l'application n'est pas considérée comme une solution élégante, on préférera utiliser un bloc selon que avec l'instruction CASE ... OF.



Voir l'instruction composée ON ... GOSUB pour un saut inconditionnel avec retour vers une ancre selon la valeur d'une référence.

Voir l'instruction composée ON ... PROC provoquera l'appel d'une procédure personnalisée selon la valeur d'une référence.

Voir l'instruction CASE ... OF pour plus de détails sur tests conditionnels selon que.




EXEMPLE.


REPEAT 

kvaleur =  RND( 4 )

ON kvaleur GOTO (lab_A) , (lab_B) ,  (lab_C) , ELSE PRINT "Le tirage est 4"

(lab_Suite)

UNTIL kvaleur=  4

END 


(lab_A)

PRINT "Le tirage est 1"

GOTO (lab_Suite)


(lab_B)

PRINT "Le tirage est 2"

GOTO (lab_Suite)


(lab_C)

PRINT "Le tirage est 3"

GOTO (lab_Suite)

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse