Algorithmique et langage Java

Répéter une séquence d'instructions: boucles for

Il arrive fréquemment qu'un programme doive répéter une séquence d'instructions un nombre déterminé de fois.
Dans ce cas on utilise une variable comme compteur de répétitions (compteur d'itérations).
Classiquement on incrémente (augmente de 1) la variable compteur à chaque exécution de la boucle (d'autres choix sont possibles).
Algorigramme d'une boucle avec compteurAlgorigramme d'une boucle avec compteur

Avec l'instruction while on procèderait ainsi pour répéter 10 fois un bloc d'instructions :
int i=0;//on déclare une variable qui servira de compteur d'itération 
        //et on lui donne une valeur initiale, ici 0;

while(i<10)// on vérifie si le compteur n'a pas atteint sa valeur finale 
{ 
   ....
    //bloc d'instructions à répéter 
    ...
    i=i+1;// incrémente le compteur à chaque exécution du bloc à répéter
}

  Plutôt que l'instruction while Il est cependant préférable d'utiliser dans ce cas l'instruction for, spécialement conçue pour les boucle avec compteur.

L'instruction for permet de regrouper sur une seule ligne toutes les instructions concernant la gestion de la boucle.
La syntaxe de l'instruction for est de la forme

for (initialisation;condition;modification)
  {
    instructions 
  }
  
Exemple
package initial;

public class DesBouclesFor{
  public static void main(String[] args){
    ConsoleTexte mc=new ConsoleTexte();
    for (int i=25;i<50;i=i+1) // le compteur est l'entier i ,sa valeur initiale est 25.
                              //Le bloc d'instructions sera exécuté tant que i<50. 
                              //i sera incrémenté à chaque itération.
    {    // bloc d'instructions à répéter écrit entre accolades  
      mc.ecrit(i+"; "); 
    }
    mc.ecritln("");
    mc.ecritln("Fin de la premiere boucle");
     // cette première boucle écrit tous les entiers de 25 inclus à 50 exclu 
    for (int i=100;i>-100;i=i-4) //le compteur est l'entier i ,sa valeur initiale est 100.
                                // Le bloc d'instructions sera exécuté tant que i>-100. 
                                //i diminue de 4 à chaque itération.
    {
      mc.ecrit(i+"; ");
    }
    mc.ecritln("");
    mc.ecritln("Fin de la seconde boucle");
     // cette seconde boucle écrit les entiers de 4 e 4, de 100 inclus à -100 exclu
  }
}

La variable utilisée comme compteur est généralement un type numérique (int le plus souvent).
L'utilisation de l'instruction for plutôt que while rend le code plus compact et lisible.
Elle aide à ne pas oublier d'initialiser le compteur ou de le mettre à jour.
De plus elle permet de déclarer la variable compteur comme une variable locale à la boucle.
Si la variable i est déclarée dans l'instruction for (int i... elle n'est reconnue qu'à l'intérieur de la boucle et cesse d'exister quand la boucle est terminée.
On évite ainsi d'encombrer la mémoire et de réserver un nom de variable inutilement pour la suite du programme.

En utilisant une boucle for, afficher les 10 premiers éléments de la table de 7
En utilisant une boucle for, afficher 10 caractères identiques sur une même ligne, puis sur une même colonne
Utiliser deux boucles for imbriquées pour positionner des caractères identiques selon un rectangle plein
Utiliser deux boucles for imbriquées pour positionner des caractères identiques selon un triangle rectangle plein.
 
Licence Creative Commons
licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé
Auteur : Nathalie Bonnin
Professeur de Physique, Chimie, Informatique au lycée La Martinière Monplaisir (Lyon 8ème)
Contact :
nathalie.bonnin (chez) scientillula.net
Licence Creative Commons
La totalité du contenu du site Scientillula.net appartient à Nathalie Bonnin et est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé