Les instructions de contrôle

Les instructions de contrôle

Syntaxe de if et de switch

Groupe 1 Il manque un point-virgule à la fin du premier appel de System.out.println : if (a < b) System.out.println (« ascendant ») ; else System.out.println (« non ascendant ») ; Groupe 2 Il manque un point-virgule à la fin de la deuxième instruction du bloc : if (a < b) { System.out.println (« ascendant) ; max = b ; } Quelles erreurs ont été commises dans chacun des groupes d’instructions suivants. On suppose que les variables concernées sont d’un type primitif numérique et qu’elles ont été correctement déclarées (un groupe ne comporte aucune erreur) : // groupe 1 if (a < b) System.out.println (« ascendant ») else System.out.println (« non ascendant ») ; // groupe 2 if (a < b) { System.out.println (« ascendant) ; max = b } // groupe 3 int n, p ; ….. switch (n) { case 2 : System.out.println (« petit ») ; break ; case p : System.out.println (« limite ») ; break ; } // groupe 4 int n ; final int LIMITE = 20 ; ….. switch (n) { case LIMITE-1 : System.out.println (« un peu trop petit ») ; break ; case LIMITE : System.out.println (« OK ») ; break ; case LIMITE+1 : System.out.println (« un peu trop grand ») ; break ; }Groupe 3 Les valeurs utilisées dans les étiquettes de la forme case xxx doivent être des expressions constantes, ce qui n’est pas le cas de p. Groupe 4 Aucune erreur. Les expressions telles que LIMITE-1 étant bien cette fois des expressions constantes.

Rôle de l’instruction switch

Soit le programme suivanta : public class ExoII2 { public static void main(String[] args) { int n ; n = Clavier.lireInt() ; switch (n) { case 0 : System.out.println (« Nul ») ; case 1 : case 2 : System.out.println (« Petit ») ; break ; case 3 : case 4 : case 5 : System.out.println (« Moyen ») ; default : System.out.println (« Grand ») ; } } } Quels résultats affiche-t-il lorsqu’on lui fournit en donnée : 1. la valeur 0, 2. la valeur 1, 3. la valeur 4, 4. la valeur 10, 5. la valeur -5. a. Il utilise la classe Clavier (voir note en début de chapitre). 12 geneli~1.book Page 15 Lundi, 10. juillet 2006 12:46 12 Les instructions de contrôle Chapitre 2 16 © Éditions Eyrolles // avec la valeur 0 Nul Petit // avec la valeur 1 Petit // avec la valeur 4 Moyen Grand // avec la valeur 10 Grand // avec la valeur -5 Grand Syntaxe des boucles Instruction 1 Il manque un point-virgule : do n++ ; while (n<10) ; Instruction 2 Il manque une instruction (même vide) après le mot do, par exemple : do ; while ( (n = Clavier.lireInt()) != 10) ; ou : do {} while ( (n = Clavier.lireInt()) != 10) ; Instruction 3 Aucune erreur de compilation ne sera détectée. Mais on est en présence d’une boucle infinie. Instruction 4 Aucune erreur de compilation ne sera détectée. Mais l’instruction ne sert à rien. Quelles erreurs ont été commises dans chacune des instructions suivantes ? do n++ while (n<10) ; // instruction 1 do while ( (n = Clavier.lireInt()) != 10) ; // instruction 2 do ; while (true) ; // instruction 3 do {} while (false) ; // instruction 4.

Comparaison entre for, while et do… while

Avec une instruction while : public class ExoII4b { public static void main(String[] args) { int i, n, som ; som = 0 ; i = 0 ; while (i<4) { System.out.println (« donnez un entier « ) ; n = Clavier.lireInt() ; som += n ; i++ ; } System.out.println (« Somme :  » + som) ; } } Avec une instruction do… while : public class ExoII4c { public static void main(String[] args) { int i, n, som ; som = 0 ; Soit le programme suivanta : public class ExoII4a { public static void main(String[] args) { int i, n, som ; som = 0 ; for (i=0 ; i<4 ; i++) { System.out.println (« donnez un entier « ) ; n = Clavier.lireInt() ; som += n ; } System.out.println (« Somme :  » + som) ; } } Écrire un programme réalisant la même chose en employant à la place de l’instruction for : 1. une instruction while, 2. une instruction do… while. a. Il utilise la classe Clavier (voir note en début de chapitre)

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *