« JavaScript/Structures de contrôle » : différence entre les versions

Contenu supprimé Contenu ajouté
(:Julien:) (discussion | contributions)
"ralier" des conditions ?
Ligne 21 :
</source>
 
Dans la condition, on se sert généralement des opérateurs de comparaison mais toute fonction renvoyant un booléen est autorisée.
 
<source lang="javascript">
Ligne 33 :
</source>
 
Notez que ceci est également possible (lorsque le bloc aà exécuter ne nécessite qu'une seule ligne) :
 
<source lang="javascript">
Ligne 46 :
<source lang="javascript">
var temps = "orageux";
var je_prendje_prends;
 
if (temps == "soleil") je_prendje_prends = "mon parasol.";
else if (temps == "nuageux") je_prendje_prends = "mon chapeau.";
else if (temps == "pluvieux") je_prendje_prends = "mon parapluie.";
else je_prendje_prends = "mon para tonnerreparatonnerre.";
 
document.write("Lorsque le temps est "+temps+", je prendprends "+je_prendje_prends);
// Lorsque le temps est orageux, je prendprends mon para tonnerreparatonnerre.
</source>
 
Ce belCet exemple montre comment gérer simplement les conditions multiples en JavaScript.
 
====Ralier plusieurs conditions====
Il est possible de ralier plusieurs conditions en une seule. Évidemment, la précision sera moindre mais cela se révèle vite incontournable et très pratique. Pour cela il existe deux opérateurs très simplesimples d'utilisation.
 
* && : il équivaut au célèbre AND de php. Il veut dire ET.
* || : il veut dire OU.
 
Ligne 70 :
var temps = "neigeux";
var temperature = -5;
var je_prendje_prends;
 
if (temps == "neigeux" || temperature <= 0) je_prendje_prends = "ma luge ou mon gros blouson.";
else if (temps == "neigeux" && temperature <= 0) je_prendje_prends = "ma luge et mon gros blouson.";
else je_prendje_prends = "mes lunettes de soleil."; // Avec un peu de chance il fait beau :)
 
document.write("Lorsque le temps est "+temps+" et que la température est de "+temperature+"°C, je prendprends "+je_prendje_prends);
// Lorsque le temps est orageux et que la température est de -5°C, je prendprends ma luge ou mon gros blouson.
</source>
 
On pourrait plus détailler mais il est évident qu'un exemple tel que celui-ci est significatif de l'importance de cette notion. On peuxpeut aussi séparer les ET et les OU avec des parenthèses.
 
===L'alternative Switchswitch===
Il existe une alternative intéressante aux if et else. En effet, lorsque vous avez un nombre important de cas à vérifier, il peut être intéressant de ne pas avoir à recopier une cascade de else if...
 
Pour cela, il y a le mot-clé switch :
 
<source lang="text">
Ligne 97 :
</source>
 
Switch permet de gérer plusieurs cas quanten àfonction de la valeur d'une variable. Son utilisation, bien que pratique, est réputée pour être (un peu) plus lente que le if et surtout assez restreinte.
 
Exemple :
Ligne 103 :
<source lang="javascript">
var temps = "soleil";
var je_prendje_prends;
 
switch (temps)
{
case "soleil": je_prendje_prends = "mon parasol."; break;
case "nuageux": je_prendje_prends = "mon chapeau."; break;
case "pluvieux": je_prendje_prends = "mon parapluie."; break;
default: je_prendje_prends = "mon para tonnerreparatonnerre."; break;
}
 
document.write("Lorsque le temps est "+temps+", je prendprends "+je_prendje_prends);
// Lorsque le temps est soleil, je prendprends mon parasol.
</source>
 
Vous admettrez que pour les fainéants, la seconde méthode est préférable :-)
 
===Structures ternaires===
Derrière ce nom "barbare" se cache un procédé raisonnablement complexe mais surtout très pratique et permettant de gagner du temps, de la place, et de la lisibilité, <s>de l'argent</s>, bref (...)
 
Les ternaires sont en fait un concentré d'un groupe if et else (sans ''else if'' au milieu). Cela permet d'écrire une condition en une seule ligne. C'est une alternative aux structures conditionnelles vues précédemment. Voici la syntaxe :
Ligne 153 :
Qu'est-ce qu'une boucle ?
 
Une boucle, c'est un bloc d'instructions qui sera répétée tant qu'une condition sera vérifiée (= true). Une boucle peut être finie (elle finira à un moment) ou au contraire infinie (généralement il s'agit d'une erreur de code et cela finifinit par faire "planter" le navigateur).
 
===while===
Ligne 192 :
 
===do... while===
La boucle do while est la sœur de la boucle while puisqu'il s'agit de la même boucle SAUF que le bloc d'instruction s'effectuera automatiquement au minimum une fois et ce même si la condition de la boucle n'est pas vérifiée dès le début. Cela peut servir des fois...
 
Voici un exemple simple :
Ligne 207 :
</source>
 
Ici, la condition vaut false dès le début. Un while normal aurait donc sauté la condition pour passer à la suite du code. Mais le do while a exécutéexécute une fois le code et a finalement affichéaffiche :
 
''Ligne 5''
Ligne 235 :
</source>
 
Le résultat est le même que celui de la boucle while. Ceci- dit, l'utilisation d'une des trois boucles dépend du contexte et des besoinbesoins du script.
 
===break===
Il arrive parfois que l'on veuille sortir d'une boucle alors même que la condition de la boucle est encore vraie. Pour cela, on peut faire appel à l'instruction break. Lorsque cette instruction seraest exécutée, la boucle se termineraterminer immédiatement et le code la suivant seraest exécuté.
 
<source lang="javascript">
Ligne 250 :
</source>
 
Ce qui va afficheraffiche : ''La valeur de i est 5''. En effet, lale boucleprogramme estsort détruitede la boucle lorsque i prend la valeur de 5, donc après 4 tours.
 
===continue===