Une itération est un processus dans lequel une opération peut être effectuée plus d'une fois.
Exemples :
Pour arrêter l'itération :
Exemple :
"mesurer la température" tant que "la température < 20 degrés" "ajouter du bois de chauffage" "attendre 3 minutes" "mesurer la température"
En Java :
float temp = Chauffage.getTemperature(); while (temp < 20) { Chauffage.ajouterBois(); Thread.sleep(180000); temp = getTemperature() }
true
,
on bouclera infinimentAlgorithme (pseudocode) :
somme = 0; "choisir la première valeur" while "il reste des valeurs à additionner" somme += valeur "choisir la valeur suivante"
Code Java
int somme = 0; int valeur = 1; final int derniere = 100; while (valeur <= derniere) { somme += valeur; valeur++ ; }
Algorithme (pseudocode) :
somme = 0; "lire la première valeur" while "il reste des valeurs à additionner" somme += valeur "lire la valeur suivante" "afficher la somme"
Code Java
// condition d'arrêt : la dernière valeur est suivie de -1 int valeur, somme = 0; BufferedReader b = new BufferedReader(new InputStreamReader(System.in)); try { String s = b.readLine(); // lecture de la valeur = Integer.parseInt(s); // prochaine valeur while (valeur != -1) { somme += valeur; s = b.readLine(); // lecture de la valeur = Integer.parseInt(s); // prochaine valeur } } catch (IOException e){ } System.out.println("somme = " + somme);
On répète au moins une fois un groupe d'instructions; on arrête la boucle lorsque la condition est fausse,
Exemple :
do { "faire un traitement"; "évaluer les résultats"; } while "les résultats ne sont pas satisfaisants";
for ( <instruction d'initialisation>; <condition de continuation>; <instruction de mise à jour> ) <instruction à répéter>;
Problème : afficher les valeurs paires entre 0 et 100 (inclusivement)
Solution
for (int compteur = 0; compteur <= 100; compteur++) if (compteur % 2 == 0) System.out.println(compteur);
Une autre solution
for (int compteur = 0; compteur <= 100; compteur+=2) System.out.println(compteur);
Problème : afficher les valeurs paires entre 1 et 100 (inclusivement), 10 valeurs par ligne
Solution incluant du pseudo-code
for (int compteur = 1; compteur <= 100; compteur++){ if (compteur % 2 == 0) { System.out.print(compteur + " "); if ("10 valeurs affichées sur cette ligne") System.out.println(); } }
Solution
for (int compteur = 1; compteur <= 100; compteur++){ if (compteur % 2 == 0) { System.out.print(compteur + " "); if (compteur % 20 == 0) System.out.println(); } }
Les deux programmes suivants bouclent infiniment :
int n = 0; while (n < 10); System.out.println(n); n = n + 1;
int n = 0; while (n < 10) System.out.println(n); n = n + 1;
La version correcte :
int n = 0; while (n < 10) { System.out.println(n); n = n + 1; }
Conseil :
Le programme doit
Quel type de boucle utiliserez-vous ?