Skip to content

Les structures de controle

lcs01 edited this page Jan 25, 2019 · 1 revision

Les structures de contrôle Romainjava edited this page 21 days ago · 5 revisions

Les structures de contrôle permettent de modifier l’ordre d’exécution des instructions dans votre code. Deux types de structures sont disponibles :

• Les structures de décision : elles aiguilleront l’exécution du code en fonction des valeurs que pourra prendre une expression de test.

• Les structures de boucle : elles feront exécuter une portion de code un certain nombre de fois, jusqu’à ce qu’une condition soit remplie ou tant qu’une condition est remplie.

  1. Structures de décision

Deux solutions sont possibles. a. Structure if

Quatre syntaxes sont utilisables pour l’instruction if. if (condition)instruction; Si la condition est vraie alors l’instruction est exécutée. La condition doit être une expression qui, une fois évaluée, doit fournir un boolean true ou false. Avec cette syntaxe, seule l’instruction située après le if sera exécutée si la condition est vraie. Pour pouvoir faire exécuter plusieurs instructions en fonction d’une condition il faut utiliser la syntaxe ci- après.

if (condition) { Instruction 1; ... Instruction n; }

Dans ce cas le groupe d’instructions situé entre les accolades sera exécuté si la condition est vraie. Vous pouvez également spécifier une ou plusieurs instructions qui elles seront exécutées si la condition est fausse.

if (condition) { Instruction 1; ... Instruction n; } else { Instruction 1; ... Instruction n; }

Vous pouvez également imbriquer les conditions avec la syntaxe.

if (condition1) { Instruction 1 ... Instruction n } else if (Condition 2) { Instruction 1 ... Instruction n } else if (Condition 3) { Instruction 1 ... Instruction n } else { Instruction 1 ... Instruction n }

Dans ce cas, on teste la première condition. Si elle est vraie alors le bloc de code correspondant est exécuté sinon on teste la suivante et ainsi de suite. Si aucune condition n’est vérifiée, le bloc de code spécifié après le else est exécuté. L’instruction else n’est pas obligatoire dans cette structure. Dans ce cas, il se peut qu’aucune instruction ne soit exécutée si aucune des conditions n’est vraie. Il existe également un opérateur conditionnel permettant d’effectuer un if ... else en une seule instruction. condition ? expression1 : expression2; Cette syntaxe est équivalente à celle-ci :

If (condition) expression1; else expression2;

b. Structure switch

La structure switch permet un fonctionnement équivalent mais offre une meilleure lisibilité du code. La syntaxe est la suivante :

Switch (expression) { Case valeur1: Instruction 1 ... Instruction n Break; Case valeur2: Instruction 1 ... Instruction n Break; Default: Instruction 1 ... Instruction n }

La valeur de l’expression est évaluée au début de la structure (par le switch) puis la valeur obtenue est comparée avec la valeur spécifiée dans le premier case. Si les deux valeurs sont égales, alors le bloc de code 1 est exécuté.

Sinon, la valeur obtenue est comparée avec la valeur du case suivant, s’il y a correspondance, le bloc de code est exécuté et ainsi de suite jusqu’au dernier case.

Si aucune valeur concordante n’est trouvée dans les différents case alors le bloc de code spécifié dans le default est exécuté.

Chacun des blocs de code doit se terminer par l’instruction break.

Si ce n’est pas le cas l’exécution se poursuivra par le bloc de code suivant jusqu’à ce qu’une instruction break soit rencontrée ou jusqu’à la fin de la structure switch. Cette solution peut être utilisée pour pouvoir exécuter un même bloc de code pour différentes valeurs testées.

La valeur à tester peut être contenue dans une variable mais elle peut également être le résultat d’un calcul. Dans ce cas, le calcul n’est effectué qu’une seule fois au début du switch. Le type de la valeur testée peut être numérique entière, caractère, chaîne de caractères ou énumération. Il faut bien sûr que le type de la variable testée corresponde au type des valeurs dans les différents case.

Si l’expression est de type chaîne de caractères, la méthode equals est utilisée pour vérifier l’égalité avec les valeurs des différents case. La comparaison fait donc une distinction entre minuscules et majuscules.

BufferedReader br; br=new BufferedReader(new InputStreamReader(System.in)); String reponse=""; reponse=br.readLine(); switch (reponse) { case "oui": case "OUI": System.out.println("réponse positive"); break; case "non": case "NON": System.out.println("réponse négative"); break; default: System.out.println("mauvaise réponse"); }

Clone this wiki locally