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

FOR / NEXT

DESCRIPTION.


L'instruction FOR débute une boucle d'instructions pour tous qui sera exécutée un nombre de fois défini.

L'instruction NEXT indique la fin de la boucle d'instructions pour tous. 




SYNTAXE.


FOR variable = debut TO fin STEP pas : ... : NEXT variable

FOR variable = debut TO fin : ... : NEXT variable


FOR variable = debut TO fin

...

...

...

NEXT variable


FOR variable = debut TO fin STEP pas

...

...

...

NEXT variable




REMARQUES.


variable doit être un identifiant d'une variable de type numérique quelconque. variable ne doit pas être déclarée avant son utilisation pour une boucle pour tous, mais elle peut être déjà existante, dans ce cas, la valeur de variable sera modifiée et restera modifiée à la sortie de la boucle pour tous.


Bien que cela ne soit pas conseillé, l'identifiant de la variable témoin (variable) peut être omis à la suite de l'instruction NEXT., sauf si une ou des instructions composées EXIT FOR sont présentent dans le bloc d'instructions.


debut, fin et pas doivent être une valeur de type numérique : 

- debut est la première valeur que prendra variable ; 

- fin est la dernière valeur que prendra variable ;

- pas est l'intervalle entre deux valeurs de variable. 


Rappel : une boucle d'instructions : 

- pour tous, est exécutée au moins une fois et pour toutes les valeurs données ;

- tant que, ne sera exécutée que si et tant qu'une expression est vraie, elle peut ne pas être exécutée ;

- faire tant que, est exécutée au moins une fois et jusqu'à ce qu'une expression soit vraie.


Si une boucle d'instructions pour tous ne doit exécuter qu'une seule instruction pour toutes les valeurs, on peut condenser la boucle sur une seule ligne : FOR variable = debut TO fin STEP pas : ... : NEXT  ou  FOR variable = debut TO fin : ... : NEXT.


debut et fin sont obligatoires, mais pas est optionnel. Si pas est omis, sa valeur par défaut est 1.


Si fin est supérieur à debut, pas doit être négatif.

FOR kvaleur = 3 TO 1 STEP -1 : PRINT STR$( kvaleur ) ; " " ; : NEXT kvaleur

retourne : 3, 2 1


Si la valeur de variable + pas est supérieure à fin, le programme sortira de la boucle pour tous sans exécuter une dernière fois le bloc d'instruction, et variable sera affectée avec la valeur variable + pas.  

FOR kvaleur = 0 TO 11 STEP 4 : PRINT STR$( kvaleur ) ; " " ; : NEXT kvaleur

PRINT kvaleur

retourne : 0 4 8      12

kvaleur n'a pas pris la valeur 11, mais est bien égale à 12 à la sortie de la boucle pour tous. 


Les instructions à l'intérieur d'une boucle pour tous, FOR / NEXT seront exécutées au moins une fois, même si la valeur de variable est supérieur à debut, dès l'entrée dans le bloc d'instructions.

kvaleur = 7

FOR kvaleur = 1 TO 3 : PRINT STR$( kvaleur ) ; " " ; : NEXT kvaleur

PRINT kvaleur

retourne : 1 2 3      4

kvaleur a été affectée avec la valeur 1 à l'entrée de la boucle pour tous, et sa valeur précédente, 7, n'a pas été prise en compte. 


Les lignes d'instructions composant le bloc de la boucle pour tous multiligne doivent être indentées, c'est-à-dire mise en retrait.


Il ne faut jamais utiliser d'instruction GOTO, saut inconditionnel sans retour, pour sortir prématurément d'une boucle pour tous, on utilisera l'instruction composée EXIT FOR qui est prévue à cet effet.


Si besoin, plusieurs boucles pour tous, FOR / NEXT peuvent être imbriquées. Dans ce cas, 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

PRINT

NEXT klongeur

PRINT klongeur ; klargeur ; khauteur

END


Étant donné qu'une seule pile est utilisée, vous ne pouvez pas utiliser une boucle d'instructions pour tous FOR / NEXT pour définir les éléments du tableau de données LOCAL ou PRIVATE dans une procédure et/ou fonction personnalisée.



Voir l'instruction composée REPEAT / UNTIL pour créer une boucle faire tant que.

Voir l'instruction composée WHILE / ENDWHILE pour créer une boucle tant que.




EXEMPLE.


INPUT "Quelle table de multiplication " ; ksaisie

FOR kfois = 1 TO 9

PRINT STR$( ksaisie ) ; " x " ; STR$( kfois ) ; " = " ;  STR$( ksaisie * kfois )

NEXT  kfois

END

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