3 Les structures de contrôle en JavaScript


Retour au menu

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 :
Nous allons voir en parallèle les notations algorithmiques et leur traduction en JS.

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;
 ............
}

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 language = "JavaScript" >
 var prixHT =150 ; prixTTC=0;
 if ( prixHT == 0  ) 
   alert("donnez un prix HT !");
   else 
   prixTTC = prixHT * 1.206;
 document.write("Prix HT = " + prixHT + "<BR>");
 document.write("Prix TTC = ", prixTTC, "<BR>");
</SCRIPT>

Qu'obtient-on exactement à l'exécution ?
Pour vérifier, voir le
corrigé exemple 1-1

Conditionnelles imbriquées; exemple 1-2

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 stucture conditionnelle.

<SCRIPT language = "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 ?
Pour vérifier, voir le corrigé exemple 1-2


L'itération contrôlée 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 language = "JavaScript" >
document.write("Table des carrés<BR>");
for (var i = 0; i <15; i++) {
   document.write("i = "+i+"        i² = "+ i*i+"<BR>");
   }
</SCRIPT>

Qu'obtient-on exactement à l'exécution ?
Pour vérifier, voir le
corrigé exemple 2

Exemple 3

<SCRIPT language = "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 ?
Pour vérifier, voir le corrigé exemple 3

Variante

for (variable  in objet )   {
  séquence instructions 
    }

Exemple 4

<SCRIPT language = "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 ?
Pour vérifier, voir le corrigé exemple 4

Les instruction 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.

L'Itération 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) 
  REPETER 
  Séquence d'instructions
FIN TANT QUE
WHILE (condition) {  
  séquence d'instructions
  }

Exemple 5

<SCRIPT language = "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 = hasard(max);
  tab[i]= a;
  i ++ 
  }   
 document.write(max, ' a été obtenu au ', i, 'ème tirage <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 ?
Pour vérifier, voir le
corrigé exemple 5