CodeGym /Cours /JAVA 25 SELF /Instruction conditionnelle : if else

Instruction conditionnelle : if else

JAVA 25 SELF
Niveau 3 , Leçon 1
Disponible

1. Instruction if else

Les programmes seraient de peu d’utilité s’ils faisaient toujours la même chose, indépendamment des circonstances extérieures. Un programme doit savoir s’adapter à des situations variées et effectuer certaines actions dans certains cas, d’autres — dans d’autres.

En Java, cela est réalisé à l’aide de l’instruction conditionnelle — les mots-clés if et else, qui permettent d’exécuter différents blocs d’instructions selon la véracité d’une condition.

L’instruction conditionnelle se compose de trois parties : la condition, la commande 1 et la commande 2. Si la condition est vraie, la commande 1 est exécutée ; sinon, la commande 2 est exécutée. Les commandes ne s’exécutent jamais simultanément. La forme générale de cette instruction est la suivante :


if (uslovie)
   komanda1;
else
   komanda2;
Instruction conditionnelle if-else

if se traduit par « si », et else par « sinon ». En langage naturel, on peut l’écrire ainsi :


Esli uslovie istinno, to
   vypolnit’ komanda1;
inache
   vypolnit’ komanda2;
Instruction conditionnelle if-else en langage naturel

Exemples :

// Le message suivant sera affiché à l’écran : Vous êtes encore un enfant

int age = 17;
if (age < 18)
   System.out.println("Vous êtes encore un enfant");
else
   System.out.println("Vous êtes déjà adulte");
// Le message suivant sera affiché à l’écran : Il fait doux

int temperature = 5;
if (temperature < 0)
   System.out.println("Il gèle dehors");
else
   System.out.println("Il fait doux");
// Le message suivant sera affiché à l’écran : Vous pouvez passer le permis

int age = 18;
if (age == 18)
   System.out.println("Vous pouvez passer le permis");
else
   System.out.println("Vous pouvez économiser pour une voiture");

2. Bloc d’instructions

Si, lorsque la condition est satisfaite (ou non), vous souhaitez que votre programme exécute plusieurs commandes, vous pouvez les regrouper dans un bloc d’instructions.

Pour regrouper des commandes dans un bloc, il faut les « envelopper » entre des accolades. Voici à quoi cela ressemble en général :


{
   komanda1;
   komanda2;
   komanda3;
}

Un bloc peut contenir autant d’instructions que nécessaire, voire zéro.

Exemples combinant l’instruction if-else et un bloc d’instructions :

// Le message suivant sera affiché à l’écran : Tu es encore un enfant. Ne discute pas avec les adultes

int age = 17;
if (age < 18)
{
   System.out.println("Tu es encore un enfant");
   System.out.println("Ne discute pas avec les adultes");
}
else
{
   System.out.println("Vous êtes déjà adulte");
   System.out.println("Eh bien, quelle jeunesse");
}
// Le message suivant sera affiché à l’écran : Il fait doux

int temperature = 5;
if (temperature < 0)
{
   System.out.println("Il gèle dehors");
   System.out.println("Mets un bonnet");
}
else
   System.out.println("Il fait doux");
// Un bloc d’instructions vide sera exécuté. Rien ne sera affiché à l’écran. 

int age = 21;
if (age == 18)
   System.out.println("Vous pouvez obtenir votre permis");
else
{
}

3. Syntaxe abrégée de l’instruction if

Si le code dans le bloc else est absent, on peut l’omettre. L’instruction if prend alors la forme suivante :


if (uslovie)
{
    komanda1;
}
Instruction conditionnelle if

Exemple :

int age = 19;
if (age >= 18)
{
    System.out.println("Vous êtes majeur !");
}

Comment cela fonctionne-t-il ?

Si la condition est vraie, le bloc de code est exécuté. Si elle est fausse, il ne se passe rien — le programme continue.

Le bloc else est présent dans le programme, mais il est vide (aucune instruction entre les accolades). Vous pouvez simplement le supprimer : cela ne changera rien au programme.

4. Combinaison de conditions : else if

Parfois, il ne s’agit pas seulement de « oui/non », mais de choisir parmi plusieurs options. L’enchaînement else if vient alors à la rescousse :

if (uslovie1)
{
    // S’exécute si uslovie1 est vrai
}
else if (uslovie2)
{
    // S’exécute si uslovie2 est vrai, et uslovie1 — faux
}
else
{
    // S’exécute si aucune des conditions ci-dessus ne convient
}

Exemple :

int hour = 13;
if (hour < 12)
{
    System.out.println("Bonjour !");
}
else if (hour < 18)
{
    System.out.println("Bon après-midi !");
}
else
{
    System.out.println("Bonsoir !");
}

Que se passe-t-il ici ?

  • Si l’heure est inférieure à 12 — c’est le matin.
  • Si elle est entre 12 et 18 — c’est l’après-midi.
  • Si elle est supérieure — c’est le soir.
  • Le programme ne choisit qu’UNE seule option ! Dès qu’une condition correspond, les autres ne sont même pas vérifiées.

5. Illustration schématique : organigramme de branchement

Voici à quoi cela ressemble sous forme d’organigramme :

Et s’il y a plusieurs conditions :

Cela rappelle beaucoup les embranchements dans les jeux de rôle sur table : tu vas à gauche — une chose, à droite — une autre, tout droit — encore autre chose !

6. Quelles conditions peut-on tester ?

Entre les parenthèses après if, il doit y avoir une expression LOGIQUE — dont le résultat est true ou false.

Opérateurs de comparaison principaux :

Opérateur Signification Exemple
==
Égal
x == 5
!=
Différent
x != 10
>
Supérieur
x > 0
<
Inférieur
age < 18
>=
Supérieur ou égal
score >= 100
<=
Inférieur ou égal
count <= 50

Exemples de conditions :

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Attention : = (un seul signe) — c’est l’affectation. == (deux signes) — c’est la comparaison. C’est l’une des erreurs les plus courantes chez les débutants ! Si vous écrivez par mégarde :

if (x = 5) // ERREUR !

— le compilateur vous le reprochera, et à juste titre.

7. Travailler avec les chaînes dans les conditions

La comparaison avec == en Java fonctionne correctement pour les nombres. Il est déconseillé de comparer des nombres à virgule avec ==, et il ne faut pas comparer des chaînes avec == — pour les chaînes, utilisez la méthode equals(), qui compare le contenu des chaînes (et non les références).

Nous reparlerons plus en détail des subtilités de la comparaison de chaînes plus tard. Voici comment comparer correctement des chaînes — exemple ci-dessous :

String password = console.nextLine();
if (password.equals("qwerty"))            // on appelle la méthode equals() et on lui passe la deuxième chaîne
{
    System.out.println("Vous êtes connecté !");
}

8. Particularités et nuances :

Accolades : nécessaires ou pas ?

S’il n’y a qu’une seule instruction après if ou else, on peut omettre les accolades :

if (age > 18)
    System.out.println("Vous avez plus de 18 ans !");

// Mais il est plus sûr de TOUJOURS les écrire :
if (age > 18)
{
    System.out.println("Vous avez plus de 18 ans !");
}

Conseil : écrivez-les toujours. Cela vous évitera de nombreuses erreurs, en particulier lors de l’extension du code.

Erreurs logiques : attention aux conditions !

Si vous écrivez ceci :

if (age > 18)
    System.out.println("Vous avez plus de 18 ans !");
    System.out.println("Bienvenue !");

Le compilateur comprendra ce code ainsi :

if (age > 18)
{
    System.out.println("Vous avez plus de 18 ans !");
}

System.out.println("Bienvenue !");

La deuxième ligne sera toujours exécutée — les accolades sont nécessaires pour que les deux lignes fassent partie de la même « branche ».

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION