if (condition){ instructions si condition vérifiée ... }ou
if (condition){ instructions si condition vérifiée .... } else { instructions si condition non vérifiée .... }
Les instructions à effectuer dans chaque cas (condition vérifiée ou non) sont regroupées entre accolades { } : elles forment un bloc
d'instructions.
package initial; public class Inverse { public static void main(String[] args) { ConsoleTexte mc=new ConsoleTexte(); mc.ecritln("Ecris un nombre et je calculerai son inverse"); double valeur=mc.getValeur(); if (valeur!=0){ mc.ecritln("Je peux calculer l'inverse de ce nombre non nul"); mc.ecritln("L'inverse de "+valeur+" est "+1/valeur); }; } }
package initial; public class CommunMultiple { public static void main(String[] args) { ConsoleTexte mc=new ConsoleTexte(); int v; boolean multipleDe7,multipleDe4,multipleDe5; mc.ecritln("Donne-moi un nombre multiple de 7, de 5 et de 4"); v=(int)mc.getValeur(); multipleDe7=(v%7==0); // le booléen multipleDe7 sera vrai si v est multiple de 7, donc si le reste de la division de v par 7 est nul; multipleDe4=(v%4==0);// le booléen multipleDe4 sera vrai si v est multiple de 4 multipleDe5=(v%5==0);// le booléen multipleDe5 sera vrai si v est multiple de 5 if (multipleDe7){ if (multipleDe4){ if (multipleDe5){ mc.ecritln("C'est bon!"); } else mc.ecritln("Ce n'est pas un multiple de 5"); } else mc.ecritln("Ce n'est pas un multiple de 4"); } else mc.ecritln("Ce n'est pas un multiple de 7"); } }Ce programme vérifie d'abord si le nombre saisi est multiple de 7. Si ce n'est pas le cas il le signale et s'arrête. Si c'est le cas, il vérifie si le nombre est multiple de 4. Si ce n'est pas le cas il le signale et s'arrête. Si c'est le cas, il vérifie enfin si le nombre est multiple de 5. Si c'est le cas, il écrit "C'est bon!" car les trois conditions sont alors vérifiées, sinon il signale que le nombre n'est pas multiple de 5, et s'arrête.
On peut enchaîner un nombre quelconque de if...else if...else if... comme ici :
package initial; public class CommunMultiple2 { public static void main(String[] args) { ConsoleTexte mc=new ConsoleTexte(); int v; boolean multipleDe7,multipleDe4,multipleDe5; mc.ecritln("Donne-moi un nombre multiple de 7, de 5 et de 4"); v=(int)mc.getValeur(); multipleDe7=(v%7==0); // le booléen multipleDe7 sera vrai si v est multiple de 7, donc si le reste de la division de v par 7 est nul; multipleDe4=(v%4==0); multipleDe5=(v%5==0); if (multipleDe7&&multipleDe4&&multipleDe5){ mc.ecritln("C'est bon!"); } else if (multipleDe7&&multipleDe4&&!multipleDe5){ mc.ecritln("C'est un multiple de 7 et de 4 mais pas de 5"); } else if (multipleDe7&&!multipleDe4&&multipleDe5){ mc.ecritln("C'est un multiple de 7 et de 5 mais pas de 4"); } else if (!multipleDe7&&multipleDe4&&multipleDe5){ mc.ecritln("C'est un multiple de 5 et de 4 mais pas de 7"); } else if (multipleDe7&&!multipleDe4&&!multipleDe5){ mc.ecritln("C'est un multiple de 7 mais pas de 4 ni de 5"); } else if (!multipleDe7&&multipleDe4&&!multipleDe5){ mc.ecritln("C'est un multiple de 4 mais pas de 7 ni de 5"); } else if (!multipleDe7&&!multipleDe4&&multipleDe5){ mc.ecritln("C'est un multiple de 5 mais pas de 4 ni de 7"); } else mc.ecritln("Eh bien il faudra revoir les tables de multiplication, ce n'est ni un multiple de 7, ni de 5, ni de 4"); } }Dans certains cas, plutôt qu'une succession de if... else if... on peut utiliser plutôt l'instruction "switch...case...", voir ci-dessous.
package initial; public class Romantisme { public static void main(String[] args) { String reponse, commentaire; ConsoleTexte mc=new ConsoleTexte(); mc.ecritln("Quel etait le prenom de Lamartine : Victor, Alphonse, Ernest ou Louis?"); reponse=mc.getDonnees(); switch (reponse) { case "Victor": commentaire="On a dit Lamartine, pas Hugo!"; break; case "Alphonse": commentaire="Bravo"; break; case "Ernest": commentaire="Mais pas du tout!"; break; case "Louis": commentaire="A la rigueur... c'etait son troisieme prenom"; break; default: commentaire="On a dit : Victor, Alphonse, Ernest ou Louis?"; } mc.ecritln(commentaire); } }
Le programme choisit entre plusieurs instructions en fonction de la valeur de reponse, que l'utilisateur a tapé au clavier.
switch...case peut être utilisé avec des variables primitives de type entier, caractère ou String.