Upload
gyan
View
47
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
4Contrôle du déroulement du programme
4-2
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
4-3
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.
4-4
Types de contrôle de base
Le contrôle du flot peut être catégorisé en quatre types :
En séquence
Par transfert
Par sélection
Par itération
4-5
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++;}
4-6
L'instruction if
if ( boolean_expr ) statement1;[else] statement2;
if (i % 2 == 0) System.out.println("Even");else System.out.println("Odd");… if (i % 2 == 0) {
System.out.println(i); System.out.println(" is even");}
Forme générale :
Exemples :
4-7
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");
4-8
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);
4-9
Exercice pratique : trouvez les erreurs et corrigez-les
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");
int x = 7;if (x = 0) System.out.println("x is zero");
int x = 15, y = 24;if ( x % 2 == 0 && y % 2 == 0 ); System.out.println("x and y are even");
1
2
3
4-10
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;]}
4-11
L'instruction switch (suite)
• Les libellés Case doivent être des constantes.
• Utilisez break pour sortir de switch.
• Fournissez toujours une valeur default.
switch (choice) { case 37: System.out.println("Coffee?"); break;
case 45: System.out.println("Tea?"); break;
default: System.out.println("???"); break;}
4-12
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
4-13
• 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 while
4-14
• 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 do…while
4-15
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 (i = 0; i < 10; i++) System.out.println(i);
for ( initialization; termination; iteration ) statement;
4-16
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);}
4-17
Exercice pratique : trouvez les erreurs
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--;
int sum = 0;for (; i < 10; sum += i++);System.out.println("Sum is " + sum);
1
2
3
4-18
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++;}…
4-19
… for (int year = 2000; year < 2099; year++) { if ((year % 100 == 0) && (year % 400 != 0)) continue; if (year % 4 == 0) System.out.println(year);}…
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
4-20
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; }}…
4-21
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
4-22
Points de rupture
Définition des points de rupture :• Gestion de plusieurs points de rupture• Points de rupture conditionnels
4-23
Utilisation du débogueur
4-24
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.
4-25
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.
4-26
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.