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

Contenu supprimé Contenu ajouté
Gmarzin (discussion | contributions)
Gmarzin (discussion | contributions)
Aucun résumé des modifications
Ligne 1 :
[[Programmationprogrammation JavaScript/Sommairejavascript sommaire détaillé| << Retour au sommaire détaillé]] / [[Programmationprogrammation 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 transposabletransposables en javascript.
 
==Etablissement d'une expression logique==
Ligne 29 :
==Le piège==
L'auteur de cet article ne vient pas du c , mais du pascal. Il commet donc encore aujourd'hui l'erreur de confondre l'opérateur d'affectation avec l'opérateur d'égalité logique. Ceci a pour conséquence d'introduire un bug à retardement du à l'affectation de la variable de test.
<div style="color:red;text-align:center">
if (ma_var = 0) Exécution du code
</div>
Ligne 37 :
==Branchement conditionnel==
===if else===
La structure de contrôle '''if''' permet de subordonner l'exécution d'une ligne ou d'un bloc d'instructions à l'évaluation (vrai) d'une [[Programmationprogrammation JavaScript/Structuresjavascript syntaxe structures de contrôle#Etablissement d'une expression logique|expression logique]].<br/>
La syntaxe est :
<pre>
Ligne 92 :
===switch case===
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/>
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).
 
==Contrôle d'itération==
===for===
La structure for permet d'effectuer plusieurs fois une ligne d'instruction ou un bloc d'instructions.<br/>
Les modalités d'exécution de l'itération sont indiquées entre les parenthèses précédant le mot réservé for. L'instruction ou le bloc à exécuter se situent après.<br/>
Syntaxe:
<pre>
for (modalités) action;
ou
for (modalités){action1; action2;}
</pre>
 
Par modalités, nous regroupons en fait trois choses distinctes qui sont:<br/>
* l'initialisation
* La condition pour exécuter la boucle
* Les changements à effectuer à chaque tour.
Ces trois instructions sont séparées par des points-virgule, et placées entre parenthèse aprés le mot réservé '''for'''.<br/>
Généralement, ces trois instructions s'appliquent à une variable chargée de contrôler l'itération, et qu'on nomme avec la lettre '''i'''.<br/>
L'exemple le plus simple est le suivant :
<pre>
for (i = 0; i < 5; i++)
{
alert(i); // Affiche 0, puis 1, puis 2, puis 3, puis 4
}
</pre>
Dans cet exemple, nous avons initialisé la variable i à 0, définit la condition pour exécuter la boucle (répéter tant que i est strictement inférieur à 5), et définit le changement à effectuer à chaque tour (incrémenter i).<br/>
Une fois assimilé le fonctionnement, on imagine aisément toutes les possibilités. <br/>
D'abord, on peut initialiser i avec la valeur de son choix. Commencer avec 1, ou un nombre négatif.<br/>
Ensuite, on est libre de l'expression de la condition : strictement inférieur à 5, inférieur ou égal à 5 (<=) à condition devienne fausse à un moment donné, pour sortir.<br/>
Enfin, on n'est pas tenu exclusivement d'incrémenter i. On peut modifier la valeur par pas de 2.<br/>
<pre>
for (i = 4; i <= 10; i += 2)
alert(i + "est un nombre pair compris entre 4 et 10); // affiche 4, puis 6, 8 et 10
</pre>
De la même manière, une boucle peut-être décroissante:
<pre>
for (i = 5; i >= 0; i--)
alert(i); // affiche 5, puis 4, 3, 2, 1 et 0
</pre>
En sortie de boucle, i contient la valeur résultante des modifications. Pour le dernier exemple, c'est -1.<br/>
 
 
====Utilisation de continue====
Ce mot réservé permet à volonté de sauter des tours. L'exemple suivant saute le passage à zero d'une itération comprise entre -2 et 2.
<pre>
for (i=-2; i <= 2; i++)
{
if (i==0)
continue;
alert(i); // Affiche -2, puis -1, 1 et 2... mais pas le zero.
}
</pre>
====Utilisation de break====
La boucle '''for''' autorise l'usage de '''break''' pour sortir de l'itération. C'est possible. Mais c'est discutable.
 
====Eviter les pièges:====
Il es 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>
for (i=0; <span style="color:red">i &gt;= 0</span>; i++)
</div>
L'incrémentation de i ne changera pas le fait que la variable est supérieure ou égale à zero...
 
===while===
===do===
 
 
[[Programmationprogrammation JavaScript/Fonctionsjavascript syntaxe fonctions prédéfinies|Fonctions prédéfinies >>]]