26
4 Contrôle du déroulement du programme

Contrôle du déroulement du programme

  • 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

Page 1: Contrôle du déroulement du programme

4Contrôle du déroulement du programme

Page 2: 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• Exécuter des opérations en boucle• Déboguer une application au moyen du débogueur

Eclipse

Page 3: Contrôle du déroulement du programme

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.

Page 4: Contrôle du déroulement du programme

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

Page 5: Contrôle du déroulement du programme

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

Page 6: Contrôle du déroulement du programme

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 :

Page 7: Contrôle du déroulement du programme

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

Page 8: Contrôle du déroulement du programme

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

Page 9: Contrôle du déroulement du programme

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

Page 10: Contrôle du déroulement du programme

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

Page 11: Contrôle du déroulement du programme

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

Page 12: Contrôle du déroulement du programme

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

Page 13: Contrôle du déroulement du programme

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

Page 14: Contrôle du déroulement du programme

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

Page 15: Contrôle du déroulement du programme

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;

Page 16: Contrôle du déroulement du programme

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

Page 17: Contrôle du déroulement du programme

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

Page 18: Contrôle du déroulement du programme

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

Page 19: Contrôle du déroulement du programme

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

Page 20: Contrôle du déroulement du programme

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

Page 21: Contrôle du déroulement du programme

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

Page 22: Contrôle du déroulement du programme

4-22

Points de rupture

Définition des points de rupture :• Gestion de plusieurs points de rupture• Points de rupture conditionnels

Page 23: Contrôle du déroulement du programme

4-23

Utilisation du débogueur

Page 24: Contrôle du déroulement du programme

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.

Page 25: Contrôle du déroulement du programme

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.

Page 26: Contrôle du déroulement du programme

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.