for

Les boucles pour (for)

Une boucle "pour" sert à répéter une action. On distingue deux types de boucle :

  • Boucle "pour" : on connaît à l'avance le nombre de répétitions de l'action à exécuter.
  • Boucle "tant que" (qui sera vue plus tard) : le nombre de répétitions est conditionné par l'évolution de l'état de certaines variables du programme.

Un premier exemple : la table de multiplication du 8.

		 
		Pour k allant de 1 à 10 :
		    afficher k*8
		fin_pour
		
		

Un second exemple : calcul de la somme des premiers entiers naturels.

Calculons la somme S = 1+2+3+...+n des n premiers entiers positifs :


n=15 
s=0 # initialisation de la variable s qui contiendra la somme
pour j prenant les valeurs 1, 2, 3, ..., n faire
  s=s+j
fin_pour
Afficher :  La somme des entiers compris entre 1 et {valeur de n} est égale à {valeur de s}.

Modifions ce programme pour que toutes les sommes intermédiaires soient affichées :

Les boucles avec pas distinct de 1.

Comment afficher les entiers impairs entre 3 et 21 ?

  • La variable de boucle (i dans le code ci-dessous) est initialisée à la valeur 3.
  • Ensuite, la valeur de la variable est augmentée de deux à chaque tour de boucle ( i += 2).

Les boucles avec pas négatif.

Comment afficher les entiers en ordre décroissant ?

let

L'utilisation de let à la place de var pour déclarer la variable i d'indice de boucle permet de limiter la portée de la variable i au corps de la boucle.

Comparer les scripts qui suivent :

Dans ce premier cas, on a déclaré la variable i en dehors de la boucle, cette variable existe donc encore à la sortie de boucle.

Ce second cas est plus étonnant (surtout lorsqu'on a déjà pratiqué certains langages de programmation) : la variable est encore connue en sortie de boucle alors que sa déclaration est faite dans la boucle.

let permet de "corriger" ce problème : on aimerait que cette variable i qui n'est utile que lors des itérations de boucle disparaisse hors de la boucle pour ne pas risquer de venir "polluer" le reste du code (et également accessoirement dans l'espoir de libérer de la mémoire).

let permet donc de limiter la portée de la variable i à la boucle (ou plus généralement au bloc dans lequel on a déclaré une variable avec le mot clef let).