Comme vous pouvez le constater sur cette illustration, une boucle mal utilisée peut être fatale !
Nous allons voir dans cette page les 4 types de boucle en java.
public class MonTableau { public static void main(String args[]) { int[] tableau = {1, 2, 3, 4, 5}; // déclaration et initialisation int total = 0; // déclaration et initialisation // boucle for pour parcourir les éléments du tableau // on peut aussi l'écrire comme ceci : for (int i=0;i<tableau.length;i++) for (int i = 0 ; i < tableau.length ; i = i + 1) { System.out.println("indice " + i +" valeur stockée : " + tableau[i]); total+=tableau[i]; } // affichage du résultat dans la console System.out.println("Total des valeurs stockées dans le tableau = "+ total); } }
public class MonTableau { public static void main(String args[]) { int[] tableau = {1, 2, 3, 4, 5}; // déclaration et initialisation int total = 0; // déclaration et initialisation // boucle foreach pour parcourir les éléments du tableau for (int i : tableau) { System.out.println("Valeur stockée : " + i); total+=i; } // affichage du résultat dans la console System.out.println("Total des valeurs stockées dans le tableau = "+ total); } }
Quelle différence trouvez-vous entre les 2 boucles for ?
Je vous aide ;) dans la seconde (foreach) le i correspond aux valeurs stockées et non à l’itération. Donc, faites bien attention de choisir la boucle idéale pour votre algorithme ! Si vous avez besoin de l’indice, choisissez la première, sinon la seconde est bien pratique si vous devez lire des objets sans vous soucier de la position de ces derniers.
public class MonGrosBreak { public static void main(String args[]) { int i, k; boucle1: for(i=1; i < 7; i++) { System.out.printf("Boucle i :%d%n",i); for(k=0; k < 5; k++) { System.out.printf(" Boucle k :%d",k); if (k == 3) break; // on sort de la boucle interne (boucle k) // sinon on continue if (i == 3 || i == 5) { System.out.println(" Mince, pas de petit break :("); continue boucle1; // on continue la boucle1 avec la prochaine itération, on ne fait pas le petit break :( } // Que se passe t-il ? } // fin de la boucle interne (sans étiquette) // le break vient exécuter cette ligne ci-dessous System.out.printf(" Ouf ! Grâce à la valeur %d, je suis sortie de la boucle k pour faire un petit break !%n",k); // du coup la valeur de k sera de nouveau égale à zéro } // fin de la boucle externe boucle1 // le break vient exécuter cette ligne ci-dessous System.out.printf("Ouf ! je suis enfin sortie de la boucle1 pour faire un gros break !) %n",i); } }
import java.util.Arrays; import java.util.OptionalDouble; public class MaBoucleWhile { public static void main(String args[]) { int[] tableau = {10, 20, 13, 14, 15}; // déclaration et initialisation int total = 0; // déclaration et initialisation int i = 0; // indice pour extraire les valeurs de notre tableau composé de 5 éléments (de 0 à 4) while ( i < tableau.length ) // tant que la valeur de i est inférieure au nombre d'éléments dans la tableau { total+= tableau[i]; i = i + 1; } // affichage dans la console : System.out.printf("total de %d sur %d notes%n",total, tableau.length); // Petite démo de calcul d'une moyenne possible depuis Java 8 (Lambda et Optional) // on verra cette syntaxe particulière ultérieurement OptionalDouble moyenne = Arrays.stream(tableau).average(); moyenne.ifPresent(valeur -> { System.out.printf("Moyenne des notes : %.2f",valeur);}); } }
Principe, on entre au moins une fois dans la boucle. La condition est testée à la fin dans le while.
Pensez à sélectionner Interactive pour saisir vos réponses dans la console en ligne !
import java.util.Arrays; import java.util.Scanner; import java.util.InputMismatchException; /** * Intéret et utilisation d'une boucle Do... While * Ici pour illustrer le choix de quitter ou pas ! * */ public class MaBoucleDoWhile { public static void main(String args[]) { try { boolean quitter = false; do { System.out.println("Voulez-vous quitter (O/N) ?"); Scanner scanner = new Scanner(System.in); String reponse = scanner.nextLine(); if (reponse.equalsIgnoreCase("O")) quitter=true; }while(!quitter); System.out.println("Vous avez quitté ;)"); }catch(InputMismatchException e) { System.out.println("Erreur de saisie !"); } } }
Lien ci-dessous vers le site de quelqu’un qui maîtrise bien Java !
bases de java avec JMDoudoux