III-
LES STRUCTURES DE CONTRÔLE EN JAVASCRIPT
1- Structure algorithmique d'un
programme :
Un programme informatique est assemblé à partir de 3 catégories
principales d'instructions, quel que soit le langage utilisé pour
le coder :
· instructions séquentielles
· instructions conditionnelles (ou alternatives)
· instructions itératives (ou répétitives)
Nous allons voir en parallèle les notations algorithmiques et leur
traduction en JS.
2. La séquence d'instructions
Il s'agit d'une suite d'actions qui sont exécutées dans l'ordre,
les unes après les autres sans choix possibles, ni répétitions.
Séquence ou
bloc d'instructions |
Algorithme |
Code JavaScript |
Début
Instruction
1
Instruction
2
…………
fin |
{
Instruction
1;
Instruction
2 ;
………….
} |
3. L'instruction conditionnelle if…[then].. else
Syntaxe :
Structure
conditionnelle |
Algorithme |
Code JavaScript |
SI
condition ALORS
Séquence 1
Sinon
Séquence 2
FINSI |
if
(condition) {
séquence 1
}
else
{
séquence 2
} |
Remarques :
1. La condition doit être toujours entourée de (
).
2. Le mot alors (then) est toujours
sous-entendue.
3. La séquence alors est exécutée si la condition
est vraie.
4. La séquence else (optionnelle) est exécutée
si la condition est fausse.
5. Les { } ne sont pas obligatoires qu'en cas
d'instructions multiples.
Exemple 1-1 :
<SCRIPT
langage = ''JavaScript''>
var
prixHT = 150 ; prixTTC = 0 ;
if
(prixHT == 0 )
alert
(" donnez un prix HT ! ") ;
else
prix
TTC = prixHT * 1.206 ;
document.write("
Prix HT = " + prixHT + " <BR> ") ;
document.write("
Prix TTC = " , prixTTC, " <BR> ") ;
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?
Exemple 1 - 2 : Conditionnelles imbriquées
Les instructions conditionnelles peuvent être imbriquées : cela
signifie que dans la structure conditionnelle, séquence 1
et/ou séquence 2, peuvent elles-mêmes contenir une
structure conditionnelle.
<SCRIPT
langage = ''JavaScript''>
var
age=0;
age=prompt
(" Donnez votre âge : " , "");
if
(age <=0)
alert
(" Cela n'a pas de sens ! ");
else
if (age <=13)
alert
(" Vous êtes encore bien trop jeune… ")
else
if (age <18)
alert(" Désolé, vous êtes encore mineur(e)")
else
if (age <25)
alert(" Vous êtes déjà majeur (e) ! ")
else alert (Ne vous vieillissez donc pas ! ");
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?
4. La boucle for
L'instruction for permet de répéter une séquence d'instructions
tant qu'une condition est vraie ;
Syntaxe :
Structure itérative
for |
Algorithme |
Code JavaScript |
POUR
I de valeur initiale à valeur finale
Répéter
Séquence d'instructions
FIN
POUR |
For
(valeur initiale, condition ; poursuite)
{
séquence d'instructions
} |
La condition qui suit for est composée de 3 éléments :
1. une valeur ou expression initiale portant sur une variable
entière appelée compteur.
2. une condition : tant qu'elle est vraie, la répétition
est poursuivie
3. une expression de poursuite qui consiste en la mise à
jour du compteur.
Exemple 2 :
<SCRIPT
langage = ''JavaScript''>
document.write("
Table des carrés<BR> ");
for
(var i = 0 ; i <15 ; i ++) {
document.write("
i = "+i+" i2 = "i*i+" <BR>");
}
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?
Exemple 3 :
<SCRIPT
langage = ''JavaScript''>
function
hasard(N) {
//renvoie
une valeur entière au hasard entre 1 et N inclus
return
Math.floor(Math.random()*N)+1 ;
}
document.write("Tableau
de 100 nombres au hasard<BR>");
max=prompt("Nombres
au hasard de 1 à " , " 100 ");
tab
= new Array(100);
for
(var i = 0 ; i <100 ; i ++){
tab
[i] = hasard (max);
}
for
(var i = 0 ; i <100 ; i++) {
Document.write("tab
[", i,"] = " , tab[i]," ");
}
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?
Remarques :
· Les accolades sont obligatoires s'il y a plusieurs instructions.
· Chaque instruction se termine par un point virgule ;
· La séquence sera répétée tant que la condition est vraie,
compte-tenu de la mise à jour du compteur
· Normalement la mise à jour du compteur doit " rapprocher
" de l'arrêt de l'itération
· Sinon, les conditions mal conçues peuvent entraîner des "
boucles infinies ", comme par exemple :
for (i= 11 ;
i>10 ; i ++) {…}
Variante de la boucle for :
for
(variable in objet)
{
séquence
instructions
}
Exemple 4 :
<SCRIPT
langage = ''JavaScript''>
function
hasard(N) {
return
Math.floor(Math.random()*N)+1 ;
}
document.write("Tableau de 100 nombres au hasard<BR>")
;
max=prompt("Nombres
au hasard de 1 à " , " 100 ");
tab
= new Array(1000);
for
(var i = 0 ; i <100 ; i ++) {
tab
[i] = hasard (max);
}
for
(var i in tab) {
Document.write("tab
[", i, "] = " , tab[i]," ");
}
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?
Les instructions break et continue :
L'instruction break permet de sortir de l'itération ou de la séquence
en cours.
L'instruction continue sort de la séquence en cours puis reprend à
l'itération suivante.
5. La boucle WHILE (tant que)
L'instruction répétitive while permet de répéter une séquence
d'instructions tant qu'une expression est vraie.
Syntaxe :
Structure itérative
WHILE |
Algorithme |
Code JavaScript |
TANT
QUE (condition est vraie)
Séquence
d'instructions (à répéter)
FIN TANT QUE
|
WHILE
(condition){
Séquence d'instructions
} |
Exemple 5
<SCRIPT
langage = ''JavaScript''>
function
hasard(N) {
return
Math.floor(Math.random()*N)+1 ;
}
max=prompt("Nombres
au hasard de 1 à " , " 6 ");
document.write("<H2>Tableau
de nombres entre 1 et max,
"
tirés au hasard, jusqu'à obtenir ", max, "
</H2> ") ;
tab
= new Array(10*max) ;
a
= hasard(max) ;
tab
[0] = a ;
i
= 0;
while
(a ! = max) {
a
= hazard(max);
tab[i]=a
;
i++
}
document.write(max,
'a été obtenu au ', i, 'ème triage <P>'); i=0;
while
( tab[i] !=null) {
document.write("tab
[", i,"] = " , tab[i],"---");
if
(i%5= =0 && i!=0) document.write ("<br>");
i++;
};
</SCRIPT> |
Qu'obtient-on exactement à l'exécution ?.
|