La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.

Présentations similaires


Présentation au sujet: "3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer."— Transcription de la présentation:

1 3 Les instructions

2 Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer des chaînes If imbriqués –Pièges dûs à l’indentation –Piège dû à un point-virgule L’instruction switch Les répétitions while, for, do while While exemple While conseil For –Piège Do while L’opérateur ternaire Autres instructions

3 Cours 33 Instruction Ne pas oublier : une instruction se termine toujours par un point-virgule. Elle s’écrit toujours à l’intérieur du corps d’une méthode. Instruction = expression suivie de point- virgule ou {……} Ex x++ ; Instruction vide : le point-virgule seul constitue une instruction, c’est l’instruction vide.

4 Cours 34 Bloc déclarations et instructions entre accolades. { inst1 ; instr2 ; … ; } Qu’est-ce qu’une déclaration ?

5 Cours 35 Portée La portée d’un identificateur, c’est le domaine (ensemble de lignes du programme) dans lequel cet identificateur est utilisable. Une variable définie dans un bloc n’est pas utilisable en dehors de ce bloc.

6 Cours 36 L’alternative if (condition VRAIE) // Si condition vraie une instruction ; // Cas "alors" if (condition VRAIE)// Si condition vraie une instruction ;// Cas "alors" else une instruction ;// Cas "sinon"

7 Cours 37 Affectations =, +=, *=… Copie avec éventuelle conversion de type  Règle de compatibilité. Affectation récurrente : y = f(y) exemple : y = y + 1, opérateurs ++, --

8 Cours 38 Comment comparer Comparer des entiers ou des caractères ou des booléens : pas de problème. Comparer des réels avec == peut poser problème.

9 Cours 39 Comparer des réels double r = Math.sqrt(2) ; if(r*r == 2) // cas vrai else // cas faux Ce test sera faux car r*r donne 2.0000000000000004

10 Cours 310 Comparer des réels Pour comparer deux réels, il faut comparer leur différence à un  de l'ordre de 10 -14. Dans certains cas, lorsque les nombres sont très grands, cela peut s’avérer insuffisant. On procède alors à la comparaison : |x – y|  . max(|x|, |y|)

11 Cours 311 Comparer des chaînes Lorsqu’on compare des chaînes ou, d’une manière générale, des objets, il ne faut pas utiliser le symbole == qui compare les handles. Il faut employer la méthode appropriée equals, compareTo…. Se référer à la documentation de Java. Exemple reporté au cours suivant.

12 Cours 312 If imbriqués Un else se rapporte au if le plus proche. Pour éviter toute ambiguïté on peut systématiquement mettre des accolades. Pour tester une valeur par rapport à une autre deux tests suffisent, on procède comme suit : if(delta < 0) System.out.println("Pas de solution”); else if(delta == 0) System.out.println("Une solution”); else System.out.println("Deux solutions”);

13 Cours 313 Pièges dûs à l’indentation if(….) if(…) ……. ; else …… ; Correction if(….) { if(…) ……. ; } else …… ;

14 Cours 314 Piège dû à un point-virgule if(a > b) ; // L’erreur est due à ce point-virgule System.out.println(“a est plus grand que b”) ;

15 Cours 315 L’instruction switch switch (expression) { case exp constante1: instructions ; break ; case exp constante2: instructions ; break ; ……… default instructions ; } L’expression doit être numérique et entière. On ne peut pas utiliser switch pour tester des réels. Ne pas oublier les break pour sortir d’un ensemble de cas.

16 Cours 316 char lettre ; lettre = …… ; // Acquisition d’un caractère switch(lettre) { C’est la valeur numérique du char ‘A’, ‘E’… qui est comparée à celle de lettre case ‘A’ : case ‘E’ : case ’I’ : case ’O’ : case ‘U’ : case ’Y’ : System.out.println("C’est une voyelle majuscule") ; break ; case ‘a’ :case ‘e’ :case ’i’: case ’o’: case ‘u’ : case ’y’ : System.out.println("C’est une voyelle minuscule") ; break ; default System.out.println("Ce n’est pas une voyelle") ; }

17 Cours 317 Les répétitions while (condition)//Tant que la condition est vraie une instruction ;// répéter l’instruction La condition est évaluée avant l’exécution de l’instruction. Pour répéter plusieurs instructions il suffit de mettre un bloc {….}

18 Cours 318 While exemple // Initialisation int som = 0, n = 0; while (n <= 10) { som = som + n; n++; } System.out.println(som);

19 Cours 319 While conseils Ne pas oublier l’initialisation (ici, n = 0 et som = 0). Ne pas oublier la modification de l’expression testée (ici n++) faute de quoi nous aurions une boucle infinie. Cas particulier while(true) {….} boucle infinie.

20 Cours 320 for (initialisation ; condition ; exp3) une instruction ; Ce n’est qu’un while déguisé Expression 3 est évalué en fin

21 Cours 321 Piège for (int i=0 ; i < 10 ; i++) ; instruction ; // Cette instruction n’est pas répétée Pourquoi ? Applications : for ( ; ;) instruction ; boucle infinie

22 Cours 322 do... while do une instruction while (condition) ; Exécution au moins une fois Test après

23 Cours 323 L’opérateur ternaire ? : expression ? valeur si vraie : valeur si fausse Renvoie une valeur minimum = (a < b) ? a : b ; // Si a < b c’est a sinon c’est b

24 Cours 324 Autres instructions break : dans une boucle : interruption et passage à l’instruction suivant la boucle. continue dans une boucle : interruption et passage à l’itération suivante. return expression; Termine une méthode et renvoie la valeur de l’expression.


Télécharger ppt "3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer."

Présentations similaires


Annonces Google