260 likes | 372 Views
Contrôle du déroulement du programme. Objectifs. A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision Exécuter des opérations en boucle Déboguer une application au moyen du débogueur Eclipse. Vue d'ensemble.
E N D
Objectifs A la fin de ce cours, vous serez capables de : • Utiliser les constructions de prise de décision • Exécuter des opérations en boucle • Déboguer une application au moyen du débogueur Eclipse
Vue d'ensemble • Par défaut, le code s'exécute de manière séquentielle. • Une exécution conditionnelle est nécessaire pour du code plus complexe. • Les instructions peuvent exiger une exécution itérative. • Java offre des mécanismes de contrôle standard.
Types de contrôle de base Le contrôle du flot peut être catégorisé en quatre types : En séquence Par sélection Par itération Par transfert
Contrôle du déroulement dans Java • Les instructions peuvent être regroupées en utilisant des accolades pour former une instruction composée, appelée également bloc. • Chaque bloc s'exécute comme une instruction unique dans le flot de la structure de contrôle. { boolean finished = true; System.out.println("i = " + i); i++; }
L'instruction if if ( boolean_expr ) statement1; [else] statement2; Forme générale : if (i % 2 == 0) System.out.println("Even"); else System.out.println("Odd"); … Exemples : if (i % 2 == 0) { System.out.println(i); System.out.println(" is even"); }
Instructions if imbriquées if (speed >= 25) if (speed > 65) System.out.println("Speed over 65"); else System.out.println("Speed over 25"); else System.out.println("Speed under 25"); if (speed > 65) System.out.println("Speed over 65"); else if (speed >= 25) System.out.println("Speed over 25"); else System.out.println("Speed under 25");
L'opérateur conditionnel (?:) • Solution alternative à if…else : • Si boolean_expr est true, le résultat est expr1, sinon le résultat est expr2 : boolean_expr ? expr1 : expr2 int val1 = 120, val2 = 0; int highest; highest = (val1 > val2) ? 100 : 200; System.out.println("Highest value is " + highest);
Exercice pratique : trouvez les erreurs et corrigez-les 1 int x = 3, y = 5; if (x >= 0) if (y < x) System.out.println("y is less than x"); else System.out.println("x is negative"); 2 int x = 7; if (x = 0) System.out.println("x is zero"); 3 int x = 15, y = 24; if ( x % 2 == 0 && y % 2 == 0 ); System.out.println("x and y are even");
L'instruction switch Pratique pour effectuer une sélection parmi un certain nombre de valeurs entières possibles switch ( integer_expr ) { case constant_expr1: statement1; break; case constant_expr2: statement2; break; [default: statement3; break;] }
L'instruction switch (suite) switch (choice) { case 37: System.out.println("Coffee?"); break; case 45: System.out.println("Tea?"); break; default: System.out.println("???"); break; } • Les libellés Case doivent être des constantes. • Utilisez break pour sortir de switch. • Fournissez toujours une valeur default.
Mise en boucle • Trois types de boucles dans Java : • while • do…while • for • Toutes les boucles se composent de quatre éléments : • Initialisation • Itération • Corps • Terminaison
La boucle while • while est l'instruction de boucle la plus simple. Sa forme générale est : • Exemple : while ( boolean_expr ) statement; int i = 0; while (i < 10) { System.out.println("i = " + i); i++; }
La boucle do…while • Les boucles do…while effectuent le test à la fin : • Exemple : do statement; while ( termination ); int i = 0; do { System.out.println("i = " + i); i++; } while (i < 10);
La boucle for • Les boucles for sont les boucles les plus courantes : • Exemple : • A quoi cela ressemblerait-il si une boucle while était utilisée ? for ( initialization; termination; iteration ) statement; for (i = 0; i < 10; i++) System.out.println(i);
La boucle for (suite) • Les variables peuvent être déclarées dans la section initialisation d'une boucle for : • L'initialisation et l'itération peuvent consister en une liste d'expressions séparées par des virgules : for (int i = 0; i < 10; i++) System.out.println("i = " + i); for (int i = 0, j = 10; i < j; i++, j--) { System.out.println("i = " + i); System.out.println("j = " + j); }
Exercice pratique : trouvez les erreurs 1 int x = 10; while (x > 0); System.out.println(x--); System.out.println("We have lift off!"); int x = 10; while (x > 0) System.out.println("x is " + x); x--; 2 int sum = 0; for (; i < 10; sum += i++); System.out.println("Sum is " + sum); 3
L'instruction break Permet de sortir d'une boucle ou d'une instruction switch : • Passe le contrôle à la première instruction après le corps de la boucle ou de l'instruction switch • Peut simplifier le code … while (age <= 65) { balance = (balance+payment) * (1 + interest)); if (balance >= 250000) break; age++; } …
L'instruction continue • Ne peut être utilisée que dans des boucles • Abandonne l'itération en cours de boucle et passe à l'itération suivante de la boucle … for (int year = 2000; year < 2099; year++) { if ((year % 100 == 0) && (year % 400 != 0)) continue; if (year % 4 == 0) System.out.println(year); } …
Instructions break et continue libellées Ces instructions peuvent être utilisées pour sortir des boucles imbriquées ou poursuivre une boucle externe hors de la boucle en cours outer_loop: for (int i = 0; i < 10; i++) { for (int j = 0; j < 5; j++) { System.out.println(i, j); if (i + j > 7) break outer_loop; } } …
Débogueur Eclipse • Permet de retrouver et de corriger les erreurs de programme • Erreurs d'exécution • Erreurs logiques • Permet de contrôler l'exécution • Permet d'examiner les variables
Points de rupture Définition des points de rupture : • Gestion de plusieurs points de rupture • Points de rupture conditionnels
Exécution d'un programme pas à pas Vous pouvez exécuter un programme pas à pas au moyen des boutons de la barre d'outils du débogueur : • Exécuter le programme. • Arrêter momentanément l'exécution. • Arrêter le débogueur. • Analyser un appel de méthode. • Sauter un appel de méthode. • Poursuivre l'exécution de la méthode jusqu'à la fin.
Variables de surveillance • Vous pouvez examiner et modifier les variables locales dans le volet Data. • Pour surveiller d'autres variables : • Sélectionnez une variable dans le volet Source. • Cliquez sur la variable à l'aide du bouton droit de la souris pour la sélectionner. • Sélectionnez la commande "Watch" dans le menu contextuel. • Visualisez la variable dans le volet de surveillance.
Résumé Voici les principaux enseignements de cette leçon : • La principale ressource pour la prise de décision est l'instruction if associée éventuellement à else. • Java fournit également l'instruction switch. • Java dispose de trois instructions de boucle : while, do…while et for. • Utilisez break et continue modérément. • Utilisez le débogueur Eclipse pour parcourir le programme Java à la recherche d'erreurs éventuelles.