Accueil

Traduction

Tutoriel sur JS natif, Vue.js, jQuery.js & Node.js

Tutoriel JavaScript - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

JavaScript : les conditions

Il existe bien sûr le "if", le "if ... else" , le "if ... else if ...".
Mais aussi l'opérateur ternaire et la structure switch.

La condition if

Exemple

Le script

Testez ce script !

Commentaire du code

Il y a deux conditions.
Une condition est entre parenthèse après le mot réservé if.
Une condition est une expression logique qui retourne une valeur logique (un booleen : true ou false).
Si la première condition retourne true alors il y a affichage du message : "vous êtes sénior".
Si la deuxième condition retourne true alors il y a affichage du message : "vous êtes encore jeune".
Ici les accolades sont facultatives puisqu'il n'y a qu'une instruction en cas de test vérifié.

Syntaxes :

Les opérateurs de comparaison

Dans chacune des trois conditions l'expression logique est basée sur un opérateur de comparaison.

Nous avons utilisé : >= (supérieur ou égal) et < (inférieur à ) mais il existe aussi :
== : est égal ?
!= : est différent ?
>= : est supérieur ou égal ?
<= : est inférieur ou égal ?

Ne confondez pas l'opérateur d'égalité (==) avec l'opérateur d'affectation (=) !

Opérateurs logiques

Code de l'exemple

Testez ce script !

Remarquez que la chaine qui est l'argument de la fonction prompt contient une apostrophe . Donc il faut la délimiter la chaîne soit par des doubles quotes (") soit par des simples quotes (') mais à condition d'échapper alors l'apostrophe (\')

Examinons la première et troisième conditions. Nous avons utilisé l'opérateur logique OR puis l'opérateur AND.

Attention ce script est correct sur le plan syntaxique mais nul sur le plan algorithmique.
En effet il peut arriver que deux conditions soient vérifiées ce qui n'est pas normal. Ainsi si vous saisissez 20 : le premier test et le deuxième sont VRAI donc affichage de "Erreur de saisie" puis "Admis" ...
Il aurait fallu utliser des tests imbriques plutôt que des conditions basés sur des opérateurs logiques. Voir plus loin.

Dans l'exemple ci-dessus nous avons utilisé les opérateurs logiques && (AND), || (OR) mais il existe aussi ! (NOT). L'opérateur logique NOT est très utilisé avec des booléens.

La condition if ... else (en français :si ... sinon)

Exemple

Reprenons le thème de l'âge. Nous aurions pu écrire plus simplement :

L'instruction après le else est exécutée si la condition retourne FALSE.

Que ce soit dans le si ou dans le sinon les accolades sont ici facultatives puisqu'il n'y a à chaque fois qu'une instruction.
Elles deviennent obligatoires en cas de bloc d'instructions.

Opérateur ternaire

Reprenons le thème de l'âge. Le script peut s'écrire de la façon suivante :

Observons la troisième instruction. Elle est basée sur l'opérateur ternaire.
Si le test est VRAI la variable vstatut reçoit "senior !" sinon elle récupère "encore jeune !".
Syntaxe : test ? code si vrai : code si faux

Testez ce script !

Les "if... else if ..." imbriqués

Exemple 1 : affichage du nom du département à partir de son code minéralogique

Le script :

Testez ce script !

Mais comment fonctionne cette structure ?
Si la première condition retourne false alors il y a examen du deuxième test. Si le deuxième test retourne false alors examen du troisième test et ainsi de suite ...

Exemple 2 : reprenons le thème de l'examen

La note saisie doit être comprise entre 1 et 19 ; note >=12 : admis ; note comprise entre 10 et 12 : oral ; note inférieure à 10 : refusé.

Nous avons vu que la première solution n'était pas satisfaisante.
Le script corrigé (extrait) :

Testez Le script 'debuggé' !

La condition switch

Reprenons le thème précédent (affichage du nom du département en fonction du code minéralogique).
Il y a une autre solution avec la structure switch (cas de)

Le script

Testez ce script !

Fonctionnement du code

Reconnaissez que c'est beaucoup plus clair ...

Si vcodepostal est égal à 2 alors affichage de "Aisne" puis sortie du "switch" (grâce à l'instruction break) sinon examen du case suivant.
L'instruction associée à default est exécutée si aucun des cas n'est vérifié.

Attention la structure switch souffre cependant d'un gros inconvénient ; l'opérateur de comparaison (implicite d'ailleurs) est forcément égal. Impossible d'écrire, par exemple : case >=60.

Affichages dans la console du navigateur

Les résultats peuvent être affichées dans la console du navigateur.
Il suffit de remplacer "alert()" par "console.log()".
Donc le script devient :

Comment ouvrir la console du navigateur sous Chrome ?

Pour ouvrir la console sur Chrome, utilisez le raccourci clavier suivant :Ctrl + Maj + J (sous Windows).
Vous pouvez également ouvrir la console en cliquant avec le bouton droit de la souris sur la page, puis en sélectionnant "Inspecter" puis l'onglet "console" puis cliquez sur l'onglet "console".

Première application web

Dans le cadre d'un programme JS définitif, les boites de dialogue prompt(), alert(), console.log(), confirm() doivent être bannies.
Les entrées-sorties doivent se faire dans le cadre d'un formulaire HTML.

Reprenons la thématique "affichage du nom d'un département en fonction de son code".
Les entrées/sorties se font désormais dans le cadre d'un formulaire HTML.

Le code HTML de la page

La saisie du code minéralogique se fait dans une liste déroulante. Donc aucun risque d'erreur de saisie.
Le nom du département correspondant s'affiche dans une zone de texte en lecture seule.
Notez que chaque élément du formulaire est affecté d'un ID. C'est indispensable dans le cadre du traitement des données par le script !
A chaque changement de valeur dans la liste déroulante il y a appel d'un fonction JS : ftrait().

Le script

On manipule dans le script un élément du formulaire via son ID avec la méthode document.getElementById(nomId) Comme on manipule plus précisément le contenu d'un élément (en lecture ou écriture) il faut rajouter ".value" !

Le rendu dans un iframe :