vendredi 21 septembre 2012

Boucle for

Boucle for La boucle for est une structure de contrôle qui permet de répéter plusieurs fois le même bloc d'instructions. Avant chaque itération, un test est effectué pour savoir s'il faut ou non continuer la boucle. A la fin de chaque itération, il est possible de modifier la valeur d'une variable : le compteur de boucle. La syntaxe générale de la boucle for est :


for ( <<initialisation>> ; <<condition de continuation>> ; <<instruction d'itération>> )
     <<Bloc d'instructions>>
où :
  • initialisation : est une instruction d'initialisation de la boucle qui est exécutée en premier. Il est conseillé d'y déclarer la variable compteur pour qu'elle soit bien locale à la boucle.
  • condition de continuation : est une expression booléenne qui est testée à chaque itération avant d'exécuter le bloc d'instructions. Si l'expression booléenne est fausse, le bloc d'instructions n'est pas exécuté et la boucle s'arrête.
  • instruction d'itération : cette instruction est exécutée après le bloc d'instructions. Elle permet de mettre à jour la valeur de la variable compteur.

 

Schéma d'exécution d'une boucle for
Schéma d'exécution d'une boucle for. L'instruction d'initialisation est exécutée en premier. La condition de continuation est testée. Si cette condition est vérifiée le bloc d'instructions est exécuté puis l'instruction d'itération est exécutée à son tour. On reteste alors la condition pour savoir s'il faut refaire un tour de boucle. Si la condition n'est pas vérifiée, on sort de la boucle.

Exemples

Voici un exemple simple pour afficher les nombres de 0 à 9.
for ( int i=0 ; i<10 ; i = i+1 )
{
System.out.println( "Nombre : " + i )
}
Résultat :
Résultat d'exécution d'une boucle for
On peut détailler l'exécution de la boucle de la manière suivante :
  1. Déclaration et initialisation de la variable locale i à la valeur 0
  2. Test i<10 : vrai car i vaut 0
  3. Exécution de System.out.println( "Nombre : " + i ) : affichage de Nombre 0
  4. Incrémentation de i qui vaut maintenant 1
  5. Test i<10 : vrai car i vaut 1
  6. Exécution de System.out.println( "Nombre : " + i ) : affichage de Nombre 1
  7. Incrémentation de i qui vaut maintenant 2
  8. Test i<10 : vrai car i vaut 2
    ...
  1. Exécution de System.out.println( "Nombre : " + i ) : affichage de Nombre 9
  2. Incrémentation de i qui vaut maintenant 10
  3. Test i<10 : faux car i vaut 10 Fin de la boucle
Sur le même modèle, on peut afficher les nombres par ordre décroissant, comme dans un compte à rebours. Il faut cette fois, initialiser i avec la valeur maximale, s’arrêter à la valeur minimale (donc inverser la comparaison dans la condition de continuation) et décrémenter i à chaque itération :
for ( int i=9 ; i>=0 ; i = i-1 )
{
System.out.println( "Nombre : " + i )
}
Résultat :



Résultat d'exécution d'une boucle for

Il est même possible de compter de trois en trois en utilisant i=i+3 comme instruction d'itération et en conservant i<10 comme condition de continuation (et surtout pas i!=10, voyez-vous pourquoi ?).

Remarque :
Cette boucle for est parfois appelée "boucle for (POUR) classique", par opposition à une autre boucle for apparue plus tard dans le langage Java et appelée "boucle for each (POUR CHAQUE)".

Aucun commentaire:

Enregistrer un commentaire