4. Contrôles

     ◄ Retour accueil

 

 

if - else

Cette structure vous permet d'exécuter des instructions seulement lorsqu'une condition est véridique.

Syntaxe :
if (condition)
    {
    // instructions à exécuter si la condition est vraie
    }
else
    {
    // instruction à exécuter si la condition est fausse
    }

Le mot clé if doit être présent et est suivi sur la même ligne par une condition écrite sous forme d'expression.
Sur la ligne suivante, on place les instructions à exécuter si la condition est véridique , entre accolades s'il s'agit d'un bloc, sur une ligne seul s'il s'agit que d'une seule instruction.
La partie d'alternative else n'est pas obligatoire.  Les instructions if peuvent être imbriquées les unes dans les autres en précisant toujours la requête.

Exemple :

var nbEnfantsPetiteFamille= 3;

// prompt affiche une boîte et recueille la réponse de l'usager
var nbEnfantsUsager= prompt("Combien avez-vous d'enfants? ", "");

if (nbEnfantsUsager > nbEnfantsPetiteFamille)
    document.write("Vous avez une grosse famille! ");
else
    {
    document.write("Votre famille est petite.");
    var statut= prompt("Êtes-vous marié(e) ?", "");
    }


Switch case

Le switch case est une structure de code qui permet d'exécuter des actions différentes selon le contenu d'une expression ou d'une variable. Le mot clé switch est suivi de l'expression ou de la variable entre parenthèses. Les mots clés case identifie en suite ce que pourrait contenir la variable avec le raisonnement suivant : dans le cas d'un «», etc.

Les blocs d'instructions se terminent par break, ce qui fait sortir du switch case. La dernière instruction peut être un default, donc indique les instructions à accomplir si le contenu de la variable ne correspond pas aux cases précis. Le default n'est pas obligatoire, mais on ne l'enlève que lorsqu'on est sûr qu'il est impossible que la variable contienne une valeur non-comblée par un case.

Exemple :

switch(legume)
    {
    case "maïs" :
        document.writeln("Les maïs sont 4$ la douzaine. ");
        break;
    case "brocoli" :
        document.writeln("Le brocoli est 0,89¢ la livre. ");
        break;
    case "tomate" :
        document.writeln("Les tomates sont 3.50$ pour quatre. ");
        break;
    default :
        document.writeln("Désolez, nous n'avons plus de ce légume à vendre. ");
    }

Si la variable nommée legume est égale (donc contient textuellement) un des choix indiqués par un case, l'instruction associée (ou le groupe d'instructions) sera exécutée.

~> Il ne faut pas oublier de finir les instructions ou blocs d'instructions par un break; , ceci peut créer des erreurs difficile à repérer <~


Boucle for

Cette structure vous permet d'exécuter des instructions en boucle pendant un nombre de fois (tour, itérations) prédéterminé  Le mot clé for est suivi de trois instructions entre parenthèses séparées par des points-virgules.

La première partie est l'initiation d'une variable, la seconde la condition de sortie utilisant la variable et la troisième l'incrémentation de la variable.
i est le nom de variable le plus utilisé dans les boucles for.. il signifie itération.

Exemple :

for (int i= 0, i < 5; ++i)
      document.write(i);

Cette fonction écrit les nombre 0 1 2 3 4 à l'écran.
Donc la condition i < 5 fait en sorte que la boucle s'effectuera 5 fois.

Il est aussi possible de décrémenter la variable, de faire sa condition en relation avec la grandeur d'un vecteur, etc...


Boucle while

Cette structure vous permet d'exécuter des instructions en boucle tant que la condition est vraie.
Ceci implique donc qu'une variable doit changer de valeur à chaque tour pour que la condition soit fausse à un moment pour ne pas tomber dans le piège de la boucle infinie. Le mot clé while est suivi d'une condition entre parenthèses.

Exemple :

// On demande un mot de passe à l'usager jusqu'à temps qu'il entre le bon.
var motDePasse= "Sylvidre";
var reponse;

while ( reponse != motDePasse)
    {
    reponse= prompt("Quel est le mot de passe?", "");
    }


Boucle forever

Lorsqu'une boucle ne s'interrompt jamais, on dit qu'il s'agit d'une boucle infinie. Il existe une boucle qui est « infinie » mais qui s'arrête avec une condition de sortie if / break mise quelque part au centre de la boucle. Cette boucle porte le nom de forever et elle s'arrête lorsque la condition est vraie. La boucle débute par le mot clé for(;;) où les parenthèses et les deux points-virgules qu'elle comporte sont obligatoires.

Exemple (on suppose que les fonctions appelées sont crées précédemment) :

for(;;)
    {
    // Affiche les choix possibles que peut choisir l'usager sur son écran
    AfficherMenuPrincipal();
    // La fonction retourne le numéro du choix que l'usager a fait
    int choix= ObtenirChoix();
    /***/
    // Si l'usager a choisi le 0, c'est qu'il veut terminer le programme
    if (choix == 0) break;
    /***/
    switch(choix)
       {
       case "1"   : Jouer();                break;
       case "2"   : AfficherStats();     break;
       }
    }

Ce code fait en sorte d'afficher un menu à l'usager. Ce dernier choisi une option, elle est effectuée puis le menu réapparaît pour qu'il fasse un autre choix, tant et aussi longtemps qu'il ne demande pas d'arrêter en choisissant l'option 0.

Les standards d'écriture de la boucle forever comporte le fait d'encadrer la condition de sortie de /***/ pour la mettre en évidence.
Le mot clé break fait sortir de la boucle; l'arrête.


Boucle do-while

La boucle «jusqu'à» do - while , exécute des instructions jusqu'à ce que la condition de sortie mise à la fin soit fausse. L'avantage et la raison d'être de cette boucle est qu'elle permet d'exécuter les actions au moins une fois.

Exemple :

var motDePasse= "Clio";
do
    {
    var reponse= prompt("Quel est le mot de passe? ", "");
    }
while (reponse != motDePasse)


Minuteries

Il est possible dans Javascript d'écrire des scripts à retardement qui s'exécutent qu'à certains moments, grâce à des minuteries (timers). Cette fonction a la syntaxe suivante : window.setTimeout()

Elle accepte deux paramètres, le premier étant la fonction à être exécutée mise entre guillemets puis suivie d'un point-virgule. Le second paramètre est une période de temps; une valeur time, qui indique le temps d'attente avant l'exécution du premier paramètre. Une valeur time de 5000 correspond à 5 secondes puisque ces valeurs sont calculées en millisecondes(ms).

Exemple :

// Dans la partie d'entête...
function AfficherMessage()
    {
    document.write("Ascension réussie!");
    }

// Dans la partie du body...
<body onLoad= "window.setTimeout('AfficherMessage();', 5000)">
Décollage du vaisseau dans 5 secondes...
</body>

Ce programme affiche un message que le vaisseau va décoller, puis le change 2 secondes plus tard par «Ascension réussie!».

Notez qu'il est important de mettre le point-virgule à la suite du premier paramètre de setTimeout.
Notez que le premier paramètre est mis entre apostrophe, c'est parce que les guillemets encerclaient déjà le window.setTimeout et qu'on ne peut alterner deux types de guillemets semblables.
Notez que le second paramètre de type time ne doit pas contenir d'espace,
donc on écrit 5000 et non 5 000.


Intervalles

setTimeout() exécute «à retardement» une ou des instructions, mais qu'une seule fois. Si on désirerait qu'il recommence plusieurs fois nous pourrions le placer à l'intérieur d'une boucle. Cependant, pour que l'exécution se produise à intervalles réguliers il existe la fonction setInterval().
Cette fonction accepte deux paramètres, tout comme setTimeout, le premier est la fonction ou instruction(s) à exécuter et le second est la durée de l'intervalle entre chaque exécutions. setInterval() continue tant et aussi longtemps que la fonction clearInterval() n'a pas été invoquée.


Arrêt

Désamorcer les minuteries et les intervalles

Pour être en mesure d'arrêter des minuteries ou des intervalles de temps, il faut d'abord les avoir mis dans des variables.
Par exemple, var temps= window.setTimeout('Afficher();', 2000);

Ensuite, il est possible d'envoyer cette variable en paramètre à la fonction de désamorçage : clearTimeout()

Pour les intervalles, la fonction se nomme clearInterval()

Hosted by www.Geocities.ws

1