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)
exécuter une ou plusieurs instructions
sinon
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")
}
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)) {
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;
case 1 :
......
break;
case "toto" :
......
break;
default :
......
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 >