26
4 Contrôle du déroulement du programme

44 Contrô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

Embed Size (px)

Citation preview

Page 1: 44 Contrô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

44

Contrôle du déroulement du programmeContrôle du déroulement du programme

Page 2: 44 Contrô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

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

Page 3: 44 Contrô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

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.

Page 4: 44 Contrô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

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

Page 5: 44 Contrô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

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++;}

Page 6: 44 Contrô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

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 :

Page 7: 44 Contrô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

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");

Page 8: 44 Contrô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

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);

Page 9: 44 Contrô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

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

Page 10: 44 Contrô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

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;]

}

Page 11: 44 Contrô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

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;

}

Page 12: 44 Contrô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

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

Page 13: 44 Contrô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

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

Page 14: 44 Contrô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

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

Page 15: 44 Contrô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

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;

Page 16: 44 Contrô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

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);

}

Page 17: 44 Contrô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

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

Page 18: 44 Contrô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

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++;}…

Page 19: 44 Contrô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

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

Page 20: 44 Contrô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

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;

}

}

Page 21: 44 Contrô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

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

Page 22: 44 Contrô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

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

Page 23: 44 Contrô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

4-23

Utilisation du débogueurUtilisation du débogueur

Page 24: 44 Contrô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

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.

Page 25: 44 Contrô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

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.

Page 26: 44 Contrô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

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.