Les instructions conditionnelles sont des instructions qui permettent d'exécuter un ensemble d'instructions si et seulement si une certaine condition est vérifiée.
Si l'évaluation de l'expression booléenne test donne true (la valeur 'vrai'), alors l'instruction est exécutée; sinon on exécute l'instruction suivante.
if ( <expression booléenne> ) <instruction>
if (solde >= montantPreleve) solde = solde - montantPreleve;
S'il y a plus qu'une instruction à exécuter, utilisez un bloc.
if (resultat >= 93.5) { etudiant.setNote("A+"); feliciterEtudiant(etudiant); }
Si l'évaluation de l'expression booléenne test donne true (la valeur 'vrai'), alors l'instruction 1 est exécutée; sinon l'expression booléenne a donné false (la valeur 'faux') et l'instruction 2 est exécutée.
if ( <expression booléenne> ) <instruction> else <instruction>
if (solde >= montantPreleve) solde = solde - montantPreleve; else System.out.println("Solde insuffisant.");
if (personne.getAge() >= 18) if (personne.consommeAlcool()) personne.offrir("bière"); else personne.offrir("thé"); else personne.offrir("jus");
Le code suivant :
if (cond1) if (cond2) instr1; else instr2;est interprété comme suit :
if (cond1) { if (cond2) { instr1; } else { instr2; } }
L'instruction switch
, appelée aussi
une instruction de sélection multiple, permet de faire plusieurs tests
sur la valeur d'une même expression.
switch (<expression de type int ou String>) {
case <constante> : <instruction>; break;
case <constante> : <instruction>; break;
case <constante> : <instruction>; break;
...
case <constante> : <instruction>; break;
default : <instruction>;
}
switch
indiquent une expression dont la valeur est testée successivement par chacun des case
case
, la liste d'instructions qui suit celui-ci est exécutéebreak
indique la sortie de la structure conditionnelledefault
précède la liste d'instructions qui sera exécutée si l'expression n'est jamais égale à une des valeursbyte
, short
, int
, char
ou String
public static void imprimerMois(int mois){ switch (mois) { case 1: System.out.println("Janvier"); break; case 2: System.out.println("Février"); break; case 3: System.out.println("Mars"); break; case 4: System.out.println("Avril"); break; case 5: System.out.println("Mai"); break; case 6: System.out.println("Juin"); break; case 7: System.out.println("Juillet"); break; case 8: System.out.println("Août"); break; case 9: System.out.println("Septembre"); break; case 10: System.out.println("Octobre"); break; case 11: System.out.println("Novembre"); break; case 12: System.out.println("Décembre"); break; default: System.out.println("Mois invalide."); break; } }
public String eliminerAccents(String s){ char tab[] = s.toCharArray(); for (int i = 0; i<tab.length; i++){ switch (tab[i]){ case 'à' : case 'â' : tab[i] = 'a'; break; case 'ç' : tab[i] = 'c'; break; case 'é' : case 'ê' : case 'è' : case 'ë' : tab[i] = 'e'; break; case 'î' : case 'ï' : tab[i] = 'i'; break; case 'ô' : tab[i] = 'o'; break; case 'ù' : case 'û' : case 'ü' : tab[i] = 'u'; break; default : } } return new String(tab); }
switch
n'ajoute pas de nouveau pouvoir
d'expression par rapport à
l'instruction if else
imbriquéeComparons le dernier code avec le code suivant :
if (tab[i] == 'à' || tab[i] == 'â') tab[i] = 'a'; else if (tab[i] == 'ç') tab[i] = 'c'; else if (tab[i] == 'é' || tab[i] == 'è' || tab[i] == 'ê' || tab[i] == 'ë') tab[i] = 'e'; else ... ;