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

Contenu supprimé Contenu ajouté
Gmarzin (discussion | contributions)
mAucun résumé des modifications
Gmarzin (discussion | contributions)
Aucun résumé des modifications
Ligne 1 :
[[Programmationprogrammation JavaScript/Sommairejavascript sommaire détaillé| << Retour au sommaire détaillé]] / [[programmation JavaScript/Fonctionsjavascript syntaxe fonctions prédéfinies|Fonctions prédéfinies >>]]
 
Javascript dispose de structures de contrôle comparable à ce qu'on rencontre en langage c. La plupart des règles et habitudes acquises dans ce langage sont immédiatement transposables en javascript.<br/>
Avant de passer en revue les structures de contrôle, il est utile de lire le paragraphe [[#Etablissement d'une expression logique|Etablissement d'une expression logique]] qui précise certains aspects de la méthode.
 
==Etablissement d'une expression logique==
Ligne 93 ⟶ 94 :
Switch permet en conjonction avec case de mettre en place un sélecteur de cas. Cette structure remplace avantageusement une structure équivalente construite à partir de if else et if else imbriqués. Le mécanisme de test ne fait pas appel à une expression logique, mais une comparaison d'une variable de type scalaire avec des constantes.<br/>
La structure '''switch case''' ne pourrait pas fonctionner correctement sans '''break'''. Enfin, le mot réservé '''default''' couvre les cas différent de ceux traités par les '''case'''.<br/>
<pre>
Note : 20/01/2006 : Cette structure est un gros morceau. Je le finirai plus tard. (sauf si quelqu'un veut s'y coller...., bien-sur).
switch(ma_var)
{
case 1 :
alert("la variable vaut 1");
break;
case 2 :
alert("la variable vaut 2");
break;
default : alert("la variable vaut autre chose que 1 ou 2");
}
</pre>
On remarque les break systématiques dans ce cas.<br/>
Autre exemple :
<pre>
switch(ma_var)
{
case 0:
alert("Vraiment nulle, cette variable"); // Elle vaut zero
 
case 1:
case 3:
case 5:
alert("la variable est impaire et comprise entre 1 et 5");
break;
case 2:
case 4:
case 6:
alert("la variable est paire et comprise entre 2 et 6");
break;
case 7:
alert("la variable est égale à 7");
break;
default: alert("la variable est négative ou supérieure à 7")
}
</pre>On remarquera l'utilisation des break pour regroupper des cas...
 
==Contrôle d'itération==
Ligne 155 ⟶ 191 :
 
====Eviter les pièges:====
=====Boucle infinie=====
Il est possible, par inattention, de programmer une boucle infinie. Celà se produit quand la condition de boucle reste vrai malgré la modification de la variable.
<div>
Ligne 160 ⟶ 197 :
</div>
L'incrémentation de i ne changera pas le fait que la variable est supérieure ou égale à zero...
=====Variable modifiée=====
La structure for s'appuie sur une variable pour piloter le déroulement de la boucle. Seulement, elle ne rend pas la variable comme elle la reçue. Elle la modifie complètement. Pour éviter de modifier une variable par erreur, il est judicieux d'utiliser le mot réservé var:
<pre>
for (var i=0; ....
</pre>
 
===while===
La structure while conditionne l'exécution répétée d'une instruction ou d'un bloc d'instruction au test d'une expression logique.
<pre>
while (condition)
action;
 
ou
 
while (condition)
{
action1;
action2;
}
</pre>
Pour qu'il soit possible de sortir de la boucle, il faut que les instructions modiie à terme la condition pour la rendre fausse.
<pre>
var i = 0; // Initialiser i
while (i<5) // Tant que i est strictement inférieur à cinq
i++; // ... l'incrémenter.
</pre>
En langage c, la boucle while peut-être volontairement infinie: while(true) toujours vrai, mais en JavaScript, le navigateur ne l'acceptera probablement pas.
 
===do===
La structure do permet d'exécuter une instruction ou un bloc d'instruction et de répéter cette action tant qu'une expression logique surveillée par while est vraie.
<pre>
do
action
while (condition)
 
</pre>
<pre>
var i = 0;
do
{
i++
}
while(i < 5);
</pre>
 
 
[[programmation JavaScript/Fonctionsjavascript syntaxe fonctions prédéfinies|Fonctions prédéfinies >>]]