Pierre Perrody
Voici des "petits" cours de javascript que j'avais, à l'origine, écrit pour expliquer un tant soit peu le fonctionnement du javascript à des amis.
Comme il ne faut pas réinventer la roue, je conseillerais de lire cette page qui est bien plus fournie :
Introduction au javascript par la Mozilla Foundation

LES STRUCTURES DE CONTRÔLE (1)

Les instructions conditionelles

Une instruction conditionelle soumet l'exé,cution d'une instruction "ordinaire" au résultat d'un test. Il y en a deux formes :
- La structure if (....) .... else... qui permet de choisir entre deux blocs d'instructions selon les résultats d'un test logique.
- La strucure switch (...) qui réalise une "répartition" en fonction de la valeur d'une variable.


L'instruction IF

C'est l'instruction qui est certainement la plus utilisée.
En pseudo code, on l'écrirai :
Si (la condition est satisfaite) // IF
  exécuter une ou plusieurs instructions
sinon // ELSE
  exécuter une ou plusieurs instructions
La condition à satisfaire doit pouvoir répondre à la condition true, le cas contraire elle répondra false et exécutera les instructions situées après le sinon.
Le sinon n'est pas obligatoire, dans le cas où il n'est pas présent; les instructions ne seront exécuter que si la condition true est vérifiée.

Voyons tout de suite un exemple simple :
if (nombre>0)
{
alert("positif");
}
else
{
alert("negatif ou nul");
}

Vous remarquerez les accolades "ouvrantes" et "fermantes" après le if et avant le else ainsi qu'après le else
Ces accolades sont importantes pour délimiter les instructions à éffectuées dans chaque bloc.
Surtout si ces instructions sont multiples, en effet, si il n'y a qu'une seule instruction aprè éffectuée
on peut se passer d'accolades.
En reprenant l'exemple du dessus, cela donne :
if (nombre>0)
alert("positif");
else
alert("negatif ou nul");

que l'on peut écrire aussi : if (nombre>0) alert("positif");
else alert("negatif ou nul");

ou encore if (nombre>0) alert("positif"); else alert("negatif ou nul");

Mais si ajoute des instructions, ces accolades deviennent très importantes :
if (nombre>0) {
alert("positif");
} else {
   if (nombre==0) alert("nul");
   else alert("negatif");
}

  Variante else .. if
Il y a une manière plus simple d'écrire le test ci dessus :
if (nombre>0) {
alert("positif");
} else if (nombre==0) {
             alert("nul");
             } else if (nombre<0) {
                     alert("negatif");
                     } else {
                     alert("on ne sait pas")// et oui, nombre peut ne pas etre un number d'ou un résultat NaN
                    }

On enchaine les if.. else.. if en "concaténant" les contrôles :
if () {
..
} else {
.......if () {
.............
.......} else {
.............
.......}
}
Par if () {
..
} else if () {
.................
...........} else {
.................
...........}




Comme on a vu dans le cours précédent avec les opérateurs conditionnel ternaire,
il est possible dans le cas d'un if .. else.. simple d'éffectuer :

b=(a>0)?a-c:a-d; Au lieu de if (a>0) {
b= a-c;
} else {
b=a-d;
}

Entre les parenthèses du if, on peut utiliser tous les types d'opérateurs vu au cours précédent.
par exemple :
if (a<0 && (a>-100 || a<-200)) { // si a est négatif et a supérieur à -100 ou a inférieur à -200, on exclut les valeurs comprises entre -100 et -200.



L'instruction switch

L'instruction switch joue un peu le même rôle que le if.. else .. que nous venons de voir,
avec moins de souplesse mais plus de clarté.
Cette instruction équivaut à faire un :
if (a==0) {
....
} else if (a==1) {
.......
   } else if(a==2) {
   ..........................


où à chaque fois on teste la même variable.
On ne peut pas y éffectuer de comparaison d'autre type que le égal conditionnel!
Mais on peut tester indifférement sur des valeurs numériques ou d'autres types!
switch(a) {
  case 0 :
  ......
  break; // l'instruction break est obligatoire pour "stopper" l'action du switch.
  case 1 :
  ......
  break;
  case "toto" :
  ......
  break;
  default : // l'instruction default indique le traitement à éffectuer lorsque aucune condition n'est remplie.
  ......
  break;
}

Le break; est très important, car elle permet de terminer l'exécution du switch.
Mêmem si vous ne voyez pas l'inté de cet arrêt, sachez qu'il est très important.
(Imaginez un swtich dont le premier case recherche la présence de la lettre a dans une chaine de caractère, et le deuxième, la présence de al lettre b.
si on teste la variable qui a pour valeur "ab", et qu'on ne sort pas après le premier case,
l'exécution du case "a" : sera exécutée, suivi de celle du case "b" : suivi aussi du default :....


suite >