Chargement...

if et else en Java

Jusqu'ici vous stockiez true ou false, ou vous construisiez une seule réponse true ou false à partir de deux autres avec des marques comme &&. Ces pages se terminaient encore avec une valeur sous un nom. Cette page utilise cette valeur autrement : Java regarde true ou false et n'exécute qu'un seul groupe de lignes. L'outil de ce choix est if. L'autre groupe, quand vous en avez besoin, est else.

Un boolean décide quel bloc s'exécute

Créez un petit fichier de programme nommé Gate.java. La public class de la première ligne doit correspondre au nom du fichier : public class Gate. Ne gardez pas une ancienne classe Mint dans ce fichier ; le compilateur attend que le nom de classe et le nom de fichier concordent.
Dans main, stockez un boolean avant de choisir un chemin :
boolean ready = true;
Cette ligne n'écrit rien. Elle donne seulement au nom ready le mot true. ready commence par un r minuscule. Il n'y a pas de guillemets autour de true. Le point-virgule termine la ligne de stockage. Ensuite vient le choix lui-même :
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
Le mot if est en minuscules : i, puis f. Ce n'est pas un nom que vous inventez. Un espace après if est correct ; if(ready) sans espace compile aussi. À l'intérieur des parenthèses se trouve le nom ready — sans guillemets, sans ==, sans &&. Quand ready contient true, Java entre dans la première paire d'accolades et exécute System.out.println("pass");. Les guillemets autour de pass marquent des lettres pour l'écran. Ces lettres — p, a, s, s — sont ce que vous devez voir, une ligne. Le bloc else est entièrement ignoré sur cette exécution. Enregistrez le fichier avant de compiler.

Programme qui écrit pass

Voici la version que vous compilez en premier.

ready est true

java
public class Gate {
    public static void main(String[] args) {
        boolean ready = true;
        if (ready) {
            System.out.println("pass");
        } else {
            System.out.println("wait");
        }
    }
}

Depuis le dossier qui contient Gate.java, lancez javac Gate.java. Quand les accolades et les parenthèses concordent, javac n'écrit aucune ligne de lui-même. Ensuite lancez java Gate — pas java Gate.java. Laissez de côté l'extension .java sur la deuxième commande. Les deux mêmes commandes fonctionnent sous Windows et sous macOS ; cette page ne dépend pas d'une orthographe d'interpréteur différente pour l'un ou l'autre système. Le programme doit écrire pass et s'arrêter. Il ne doit pas attendre que vous tapiez. Si le terminal attend une saisie clavier, un appel nextLine d'un exercice plus ancien est encore dans le fichier. Supprimez cet appel et gardez le boolean plus le if / else ci-dessus. Vous n'avez pas besoin d'une nouvelle installation du JDK pour une mauvaise ligne à l'écran.

Pourquoi pass et pas wait ? Parce que le test entre parenthèses était true. Java n'écrit pas le mot true sur cette exécution. Il écrit ce que println exécute à l'intérieur des accolades choisies. Pensez à trois rôles : les parenthèses tiennent le test, les accolades regroupent les lignes qui vont ensemble, et println est la seule partie qui écrit à l'écran. Si l'écran montre true, vous imprimez probablement encore le boolean lui-même, ou une ancienne démo de marques de combinaison est encore dans main. Remplacez cette ligne d'écriture par println("pass") à l'intérieur des accolades if quand ready est true.

Quand ready est false

Changez seulement la valeur stockée :
boolean ready = false;
Laissez la structure if / else telle quelle. Maintenant le test échoue, donc Java ignore les premières accolades et exécute les accolades else à la place. L'écran doit montrer wait, une ligne.

ready est false

java
public class Gate {
    public static void main(String[] args) {
        boolean ready = false;
        if (ready) {
            System.out.println("pass");
        } else {
            System.out.println("wait");
        }
    }
}

Compilez et lancez à nouveau : javac Gate.java, puis java Gate. Vous devez voir wait. Remarquez que vous n'avez pas réécrit la ligne if ni la ligne else — seule la valeur sous ready a changé. Après avoir vu wait, vous pouvez remettre boolean ready = true; pour revenir à la première démo. Les deux versions sont du Java valide. Elles enseignent la même forme if / else avec des tests opposés.

Relisez l'exécution false une fois de plus dans l'ordre. ready contient false. if (ready) est demandé. La réponse est false, donc chaque ligne entre le premier { et son } correspondant est ignorée — y compris println("pass"). Le contrôle continue à else. Les lignes entre les accolades else s'exécutent, donc println("wait") s'exécute. Une ligne à l'écran. Pas de deuxième ligne. Le mot false lui-même n'apparaît jamais sauf si vous l'imprimez exprès.

Règles qui gardent le choix clair

Les parenthèses autour du test sont obligatoires. Écrire if ready { … } sans parenthèses fait échouer javac. Le test de cette page est un boolean : un nom comme ready, ou les mots nus true ou false sans guillemets. if ("true") place des lettres là où un test boolean doit se trouver ; javac signale une erreur. Enlevez les guillemets, ou continuez d'utiliser un nom boolean. Un nombre entier seul comme if (1) n'est pas la façon dont cette leçon stocke la disponibilité ; restez avec true, false, ou un nom boolean.

Les accolades comptent pour lire la leçon. Cette page enveloppe toujours chaque chemin dans { }. Java autorise un if d'une ligne sans accolades, mais dès que vous ajoutez une deuxième ligne sous cet if, seule la première ligne reste liée au test sauf si les accolades sont là. Les débutants perdent facilement ce détail. Gardez les accolades dans les deux démos pour que chaque chemin soit évident : une accolade ouvrante après le test, une accolade fermante avant else, puis une autre paire pour else.

else appartient à un if. Un else seul fait échouer javac. Sur cette page un if a un else. Vous pouvez écrire if sans else quand vous ne vous intéressez qu'au chemin true ; la première démo d'enseignement montre encore les deux côtés pour que vous voyiez la fourche. Choisir parmi plusieurs valeurs fixes, c'est switch sur une page plus tard — n'inventez pas une troisième branche avec un autre else ici.

Vous pouvez aussi écrire le test sans nom séparé : if (true) { … } else { … }. Cela compile et s'exécute. Les démos utilisent ready pour que vous voyiez un boolean stocké qui dirige le choix, ce qui est la forme des programmes après que vous savez déjà stocker true et false. Des comparaisons comme if (score > 10) viennent après que vous êtes à l'aise avec cette fourche true / false ; cette page garde le test comme une valeur boolean que vous comprenez déjà.

📊 ready et l'écran

ready Écran
true pass
false wait

Utilisez le tableau comme contrôle après une exécution, pas à la place d'une. true avec la première démo écrit pass. false avec la deuxième démo écrit wait. Si les deux lignes println s'exécutent d'une façon ou d'une autre, les accolades ou l'appariement if / else sont faux — corrigez la structure plutôt que de réinstaller Java.

Une confusion courante est d'imprimer la syntaxe elle-même : System.out.println("if (ready)");. Cela écrit les caractères if (ready). Cela ne choisit pas un chemin. Une autre confusion est de laisser des démos && ou == dans le même main et de se demander pourquoi l'écran montre true au lieu de pass. Le main de cette session ne doit contenir que le boolean et le if / else.

Ce que vous pouvez faire maintenant

Vous pouvez stocker un boolean, le placer dans if (…), et donner à chaque résultat son propre bloc avec accolades. Quand le test est true, un println s'exécute ; quand il est false, le println de else s'exécute. La page suivante est switch, où plusieurs valeurs fixes ont chacune leur propre case au lieu d'une seule fourche true / false.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut