Upload
bayard-poulain
View
107
Download
3
Embed Size (px)
Citation preview
44
Contrôle du déroulement du programmeContrôle du déroulement du programme
4-2
ObjectifsObjectifs
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
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'ensembleVue 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.
• 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 baseTypes de contrôle de base
Le contrôle du flot peut être catégorisé en quatre types :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 JavaContrô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.
• 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 ifL'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 :Forme générale :
Exemples :Exemples :
4-7
Instructions if imbriquéesInstructions 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 (?:)L'opérateur conditionnel (?:)
• Solution alternative à if…else :
• Si boolean_expr est true, le résultat est expr1, sinon le résultat est expr2 :
• 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
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 switchL'instruction switch
Pratique pour effectuer une sélection parmi un certain nombre de valeurs entières possibles
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)L'instruction switch (suite)
• Les libellés Case doivent être des constantes.
• Utilisez break pour sortir de switch.
• Fournissez toujours une valeur default.
• 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 boucleMise 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
• 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 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 whileLa boucle while
4-14
• Les boucles do…while effectuent le test à la fin :
• Exemple :
• 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…whileLa boucle do…while
4-15
La boucle forLa boucle for
• Les boucles for sont les boucles les plus courantes :
• Exemple :
• A quoi cela ressemblerait-il si une boucle while était utilisée ?
• 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)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 :
• 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 erreursExercice 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 breakL'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
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 continueL'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
• 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éesInstructions 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
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 EclipseDé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
• 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 rupturePoints de rupture
Définition des points de rupture :
• Gestion de plusieurs points de rupture
• Points de rupture conditionnels
Définition des points de rupture :
• Gestion de plusieurs points de rupture
• Points de rupture conditionnels
4-23
Utilisation du débogueurUtilisation du débogueur
4-24
Exécution d'un programme pas à pasExé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.
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 surveillanceVariables 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.
• 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é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.
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.