ABCSITE

INFORMATIQUE

 
 
 

 
 

 JavaScript 

 

 

 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 ?.

 
 

ABCSITE © copyright 2002