: javascript

Tests

Un test permet d'exécuter ou non une partie de programme en fonction du résultat d'une expression. Il existe plusieurs instructions pour faire des tests, if, switch et l'opérateur ternaire ? :. Plus d'info sur wikibooks

if(expression)
{
  // code exécutée si l'expression est vraie
}

L'expression est d'abord évaluée (calculée). Si son résultat est true (vrai), alors les instructions comprises dans le bloc d'accolades sont exécutées. Si le résultat de l'expression est false (faux) le programme continue normalement après l'accolade de fermeture.

Dans le cas où le code à exécuter est limité à une seule instruction, alors les accolades ne sont pas nécessaires.

if(expression) instruction;

if et else

Dans certains cas on a besoin d'exécuter un code quand l'expression est vraie et un autre lorsque l'expression est fausse.

if(expression) {
  // ici si l'expression est vraie
}
else {
  // ici si l'expression est fausse
}

On peut imbriquer les tests les uns dans les autres, ainsi:

if(expression1) {
  // ici si l'expression 1 est vraie
}
else {
  // ici si l'expression 1 est fausse
  if(expression2) {
    // ici l'expression 2 est vraie
  }
  else {
    // ici l'expression 2 est fausse
  }
}

Le deuxième if est considéré comme un seule instruction (qui en comprend d'autres en interne). Ce qui fait que les accolades du else du premier if ne sont pas nécessaires. Ceci nous amène à l'écriture suivante:

if(expression1) {
  // ici si l'expression 1 est vraie
}
else if(expression2) {
  // ici si l'expression 1 est fausse et l'expression 2 est vraie
}
else {
  // ici si toutes les expressions sont fausses
}

Plus d'info

switch

Cette structure de contrôle permet d'exécuter des codes différents pour des valeurs spécifiques d'une même expression.

switch(expression) {
case valeur1:
  // ici si l'expression vaut valeur 1
  break;
case valeur2:
  // ici si l'expression vaut valeur 2
  break;
case valeur3:
  // ici si l'expression vaut valeur 3
  break;
default:
  // ici pour toutes les autres valeurs
}

Suivant la valeur de l'expression, le programme "saute" dans le case correspondant et exécute les instructions qui s'y trouve dans l'ordre.

On notera la présence d'une instruction break, celle-ci provoque la continuation du programme après l'accolade de fermeture du switch. Si l'on omet cette instruction alors le programme continue à travers le case suivant. (Ceci est rarement pratiqué)

Si aucune valeur ne correspond, ce sont les instructions dans la section default qui sont exécutées. Cette section est optionnelle, si on l'omet, alors le programme continue après l'accolade fermante du switch si aucune valeur ne correspond à l'expression.

Plus d'info

l'opérateur ? :

Dans bien des cas on a besoin d'affecter une valeur à une variable en fonction d'une expression. Avec un if cela ressemblerait à ça:

var a;
if(b>10) a=2;
else a=4;

On peut utiliser l'opérateur ternaire ? : pour alléger l'écriture.

var a = b>10 ? 2 : 4;

a prend la valeur 2 si b est plus grand que 10, sinon a prend la valeur 4.

Plus d'info

Editer