BeginnerJavaTous les articles

Les bases du Java – Les conditions (3/5)

Salut c’est Sébastien, on se retrouve pour une nouvelle vidéo. Aujourd’hui on va parler des conditions en Java. Ça va nous permettre d’exécuter des morceaux de code ou pas, en fonction de certains événements, c’est parti !

J’ai Eclipse d’ouvert je suis dans la méthode « main », c’est ici qu’on va coder. Si vous n’avez pas vu les précédentes vidéos sur le Java, je vous invite à les regarder tout de suite sinon vous allez avoir du mal à suivre : http://developpezvosappsandroid.com/java-introduction/. Si vous les avez déjà vu vous êtes au bon endroit c’est parti.

Les conditions en Java avec « true » & « false »

Alors les conditions comment ça se passe ? On va dire « si quelque chose est vrai alors on fait ça » : comment écrire ça en Java? Pour dire le « si » on va écrire « if » (qui signifie « si » en français). Entre parenthèses on va écrire notre condition et si cette condition est vraie, le code qui va suivre va s’exécuter.   Pour écrire du code dans un « if » on met une accolade ouvrante et une accolade fermante. Le code qui va s’exécuter va se trouver entre ces deux accolades. Par exemple, si en condition on met directement le mot clé « true » qui signifie vrai, alors le code qui suis sera exécuté. Ainsi, le code qui suit va nous afficher « Ce texte s’affiche. ».

if (true)
{
     System.out.println("Ce texte s'affiche");
}

On voit que dans la console le texte s’est bien affiché.

En revanche, si entre parenthèses je met une condition fausse « false », le  texte ne s’affichera pas.

if (false)
{
     System.out.println("Ce texte s'affiche");
}

Le texte ne s’affiche pas car la condition n’est pas vérifiée pour exécuter le code.

Faire varier une condition en fonction d’autres événements

Donc là c’est bien, on arrive à exécuter du code en fonction de deux mots clés « true » ou « false » mais ce qu’on voudrait c’est que ce soit des conditions qui varient en fonction d’autres événements.

Le « si » avec le « if »

Pour cela, vous allez créer un entier « age » avec comme valeur 20.  La condition sera si l’âge est supérieure ou égale à 18, on va afficher « Vous êtes majeur, vous pouvez entrer au club ». Et si vous exécutez le code, on constate que vous êtes bien majeur et vous pouvez entrer au club parce que vous avez 20 ans.

int age = 20;

if (age >= 18)
{
    System.out.println("Vous êtes majeur, vous pouvez entrer au club");
}

Le « sinon » avec le « else »

Maintenant, si on passe l’âge à 15 ans, la condition n’est pas vérifiée et le code n’est donc pas exécuté. Ce que l’on va faire pour ajouter un message qui s’exécute lorsque l’on n’a pas 18 ans, c’est qu’on va ajouter le mot-clé « else » qui signifie « sinon » en français et dans cette condition on affichera le message « Vous n’êtes pas majeur, vous ne pouvez pas entrer au club ».

int age = 15;

if (age >= 18)
{
    System.out.println("Vous êtes majeur, vous pouvez entrer au club");
}
else
{
    System.out.println("Vous n'êtes pas majeur, vous ne pouvez pas entrer au club");
}

Lorsque l’on exécute, cela affiche bien le message « Vous n’êtes pas majeur, vous ne pouvez pas entrer au club » car la première condition est fausse (vous n’avez pas 18 ans ou plus), alors on rentre obligatoirement dans le « else ».

Le « sinon si » avec le « else if »

Ce qu’on voudrais c’est avoir un petit peu plus de possibilités que « si une condition est vrai on fait ça, sinon on fait quelque chose d’autre ». On voudrais ajouter un petit peu plus de conditions.

Pour cela, on peut mettre aussi le mot-clé « else if » qui signifie « sinon si » en français. Ainsi on peut avoir :

  • Si vous avez 18 ans ou plus vous pouvez entrer au club <=> Ici vous avez 18 ans ou plus.
  • Sinon si votre âge est supérieur ou égal à 15 ans, vous êtes mineur vous ne pouvez pas entrer au club. Mais c’est pour bientôt ! <=> Ici vous avez entre 15 ans et 18 ans car si vous avez 18 ou plus, la condition d’avant aurait été vraie et on ne serait pas entré dans cette condition.
  • Sinon vous n’êtes pas majeur et vous ne pouvez pas entrer au club <=> Ici vous avez forcément mois de 15 ans.

Ce qui en Java se traduit par :

int age = 15;

if (age >= 18)
{
    System.out.println("Vous êtes majeur, vous pouvez entrer au club");
}
else if (age >= 15)
{
    System.out.println("Vous n'êtes pas majeur, vous ne pouvez pas entrer au club. Mais c'est pour bientôt !");
}
else
{
    System.out.println("Vous n'êtes pas majeur, vous ne pouvez pas entrer au club");
}

Les commentaires simple en Java

Si vous vous y perdez un petit peu, vous pouvez mettre des commentaires. Un commentaire en Java c’est simplement 2 slash « // » et tout ce qui est écrit après sur cette même ligne est un commentaire donc ça ne sera pas vu par le compilateur Java. On peut ainsi ajouter des lignes de commentaires à nos conditions pour y voir plus clair :

int age = 15;

if (age >= 18) // Plus de 18 ans
{
    System.out.println("Vous êtes majeur, vous pouvez entrer au club");
}
else if (age >= 15) // Plus de 15 ans, mais moins de 18 ans 
{
    System.out.println("Vous n'êtes pas majeur, vous ne pouvez pas entrer au club. Mais c'est pour bientôt !");
}
else // Moins de 15 ans
{
    System.out.println("Vous n'êtes pas majeur, vous ne pouvez pas entrer au club");
}

Les autres opérateurs de condition existants

Vous avez également d’autres d’opérateurs que « >= ». Par exemple, si l’âge est égal à 18 ans on peut afficher « Vous venez d’être majeur ». Par contre, il faut bien faire attention, quand on assigne une valeur à une variable en Java on utilise le « = » alors que quand on compare, on utilise un double égal « == ». Le double égal vérifie si l’âge est égal à 18 ans et c’est comme une petite fonction qui renvoie vrai ou faux.

if (age == 18)
{
    System.out.println("Vous venez d'être majeur");
}

Comme autres opérateurs de condition il existe aussi :

  • « != » : différent de. Ici, si l’âge est différent de 18 ans.
  • « >= » : supérieur ou égal. Ici, si l’âge est supérieur ou égal à 18 ans.
  • « <= » : inferieur ou égal. Ici, si l’âge est inférieur ou égal à 18 ans.
  • « > » : supérieur strict. Ici, si l’âge est strictement supérieur à 18 ans.
  • « < » : inférieur strict. Ici, si l’âge est strictement inférieur à 18 ans.

Les conditions multiples

A présent, on va essayer d’enrichir un petit peu nos conditions parce que là on a la condition « si l’âge est supérieur à 18 ans alors on fait quelque chose » mais des fois on voudrait bien qu’une ou plusieurs conditions soient vraies avant d’exécuter le code.

Le « ET » avec le « && » : je veux que toutes mes conditions soient vraies

Nous allons donc  rajouter une ligne avec deux conditions : « Si l’âge est supérieur ou égale à 18 ans ET que l’âge est inférieur ou égale à 35 ans alors vous êtes majeur, vous pouvez entrer au club et vous êtes encore jeune ».

Désolé pour les personnes de plus de 35 ans qui regarde la vidéo, mais il nous fallait un exemple 😉

Alors en Java, pour écrire une double condition avec un ET, il faut utiliser deux fois le symbole « & » soit « && ». Cela signifie que les deux conditions doivent être vraies pour pouvoir exécuter le code.

if (age >= 18 && age <= 35)
{
    System.out.println("Vous êtes majeur, vous pouvez entrer au club et vous êtes encore jeune");
}

Le « OU » avec le « || » : je veux que l’une de mes conditions soit vraie

On voudrait également que pour nos conditions, soit quelque chose est vraie ou alors que quelque chose d’autre est vrai et on peut l’exécuter.

Pour illustrer l’exemple on va rajouter un booléen. Pour rappel c’est une variable qui peut prendre que deux valeurs « vrai » ou « faux ». On va nommer notre variable estLeFilsDuPatron pour savoir si on est, ou non, le fils du patron du club.

Donc si notre âge est supérieur ou égal à 18 ans OU que l’on est le fils du patron alors on peut entrer au club.

boolean estLeFilsDuPatron = true;

if (age >= 18 || estLeFilsDuPatron)
{
    System.out.println("Vous pouvez entrer");
}

Ainsi, si j’ai 15 ans mais que je suis le fils du patron, je pourrais entrer au club.

La condition inversée

Nous allons voir une dernière condition rapidement avec le caractère « ! ». Celui-ci va inverser la valeur de ce qui se trouve après lui, sachant que dans un « if » la valeur est soit « true » soit « false », la valeur sera inversée. Si la valeur de notre variable valait « vrai », elle vaudra « faux » avec le point d’exclamation devant et vice-versa. Par exemple :

boolean estLeFilsDuPatron = false;

if (!estLeFilsDuPatron)
{
    System.out.println("Vous pouvez entrer");
}

Avec la valeur estLeFilsDuPatron à « true » alors « !estLeFilsDuPatron » signifie que l’on n’est pas le fils du patron. Par contre, avec la valeur estLeFilsDuPatron à « false » alors « !estLeFilsDuPatron » signifie que l’on est le fils du patron et va exécuter le code.

Deux autres petites astuces

Coding style : cas d’une seule ligne dans un « if »

Vous avez vu que après un « if » on est obligé de mettre des accolades. Si par exemple j’écris plusieurs lignes de code dans le « if » entre les deux accolades, ce sont ces lignes de code qui vont s’exécuter si la condition est vrai. Alors il faut savoir que si jamais on a qu’une seule ligne à exécuter après le « if », pour des raisons de lisibilité on peut enlever les accolades. Donc si on enlève les accolades après le « if » c’est uniquement et seulement la ligne qui suit qui va être exécuté.

Si j’écris à la suite, d’autres lignes de code, elles vont être exécutées quoi qu’il arrive, que la condition soit vraie ou fausse. Il n’y a que la ligne qui suit le « if » qui sera dépendante du résultat de la condition.

if (!estLeFilsDuPatron)
    System.out.println("Vous pouvez entrer");

Commentaires sur plusieurs lignes

On a vu précédemment comment écrire un commentaire sur une seule ligne avec : // Ceci est un commentaire. Avec cette méthode, on peut écrire ce que l’on veut sur le reste de la ligne mais à la ligne d’après ce n’est plus un espace de commentaires. Ainsi si vous voulez écrire plusieurs lignes de commentaire il faut utiliser la syntaxe suivante :

/* Ceci est un commentaire */

/*
* Ceci est également
* un commentaire
*/

/*
 Et ça aussi
*/

Toutes les lignes entre « /* » et « *\ » sont des lignes de commentaire. Eclipse rajoute automatiquement des étoiles, pour des raisons de visibilité, sur chaque lignes entre « /* » et « *\ », mais vous n’êtes pas obligé de les mettre.

Conclusion

C’est tout pour aujourd’hui, on a vu les conditions. Vous avez vu qu’on peut exécuter certaines lignes de code en fonction d’autres variables, en fonction de si certains résultats sont vrais ou faux. Vous voyez que cela va nous permettre d’avoir plus d’interaction avec l’utilisateur. Vous pouvez imaginez que l’utilisateur va par exemple entrer son âge sur le téléphone Android et vous pourrez exécuter les lignes de code en fonction de ce que l’utilisateur a rentré et non en fonction de ce que vous avez écrit dans le code.

Vous avez vu que ce n’est pas un chapitre forcément difficile mais il va falloir pratiquer si vous voulez maîtriser tous ca. Simplement essayer de reproduire les exemples que j’ai fait, et ne vous inquiétez pas dans quelques vidéos je ferais des exercices Java dédiés. Je vous donnerai un énoncé, ce qui serait bien c’est que vous essayez de le faire et on verra la correction ensuite ensemble. Il faut pratiquer au moins un petit peu sinon ça va vraiment être difficile quand on va passer à la partie sur Android. Je compte sur vous également pour essayer les exemples que je vous ai montré aujourd’hui.

Vous retrouverez tous le code dans la description, je vous dis salut et à la prochaine !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *