Premiers pas en JavaScript

20.8 Les boucles WHILE - exercices
cuy copyleft
  See You Why?  

 


Break et Continue dans la boucle WHILE (20.3) | | Test : boucle WHILE (20.9)

Contenu

 

 

I. La boucle WHILE

voir <<< séquence précédente

 

II. WHILE avec 'break' ou 'continue'

voir <<< séquence précédente

 

VIII. Exercices relatifs aux boucles WHILE

 

exo20a

Étendez l'exercice 19b en demandant à l'utilisateur de saisir un nombre ou un caractère (à la place du "1") et le nombre de lignes à afficher…
Vous testerez si le caractère saisi contient bien qu'un seul caractère (méthode length).
Vous ferez en sorte que le nombre de lignes n'excède pas 50.
De plus, la boucle devra s'effectuer tant que l'utilisateur n'entrera pas un nombre.
Vous ne ferez appel qu'à des boucles WHILE.

Remarque : chaque ligne ne contient que des "1" (un) ; il n'y a aucun espace entre les "1" ; utilisez la méthode d'affichage :  document.write("element a afficher").

 

exo20b

Demander à l'utilisateur dans une boucle while d'entrer la signification de l'abréviation HTML jusqu'à trois fois dans une fenêtre de dialogue (window.prompt()).
La boucle peut se terminer pour deux raisons : soit l'utilisateur donne la signification exacte de l'abréviation (attention aux orthographes acceptables) ou la variable essai, qui compte le nombre de tentatives a atteint une valeur supérieure à 3.
Quand la boucle est terminée, on ne sait pas laquelle de ces deux causes possibles a mis fin à la boucle.
Pour le savoir, la vérification est faite dans l'exemple à la fin à l'aide d'une condition si, alors... avec if pour savoir si la boucle a été terminée parce que la réponse était fausse.
Selon le cas si la réponse était correcte ou bien fausse la phrase correspondante est sortie dans la fenêtre d'affichage du navigateur avec document.write.

 

exo20c

Voici un script JS d'une boucle while. Que va afficher cette boucle ?
var number = 1;
while (number < 10) {
    number++;
}
alert(number);

 

exo20d

Voici un autre script JS d'une boucle while. Que va afficher cette boucle ?
var compteur = 1 ;
do {
   compteur++ ;
   alert(compteur) ;
}
while (compteur<1);

 

exo20e

Voici encore un script JS d'une boucle while. Que va afficher cette boucle ?
var compteur = 1 ;
while (compteur<1) {
   compteur++ ;
   alert(compteur) ;
};

 

exo20f

Écrire un script, qui, au clic sur le bouton, lancer la fonction testWhile.
Cette fonction demandera à l'utilisateur de saisir une chaîne de caractères contenant le caractère une guille ("),
et le redemandera tant que l'utilisateur ne l'a pas fait.
Le script affichera ensuite la chaîne saisie entre guilles.

 

exo20g

Écrire un script qui donne le plus grand diviseur commun (PGDC) de deux nombres entiers introduits dans des champs d'input par l'utilisateur. Utilisez pour cela l'algorithme d'Euclide, algorithme qui s'énonce ainsi sur Wikipedia "On considère que pgcd(a,0) = a et que pour b ? 0 pgcd(a,b) = pgcd(b, a mod b). On progresse dans l'algorithme en diminuant à chaque étape les nombres considérés par calcul du modulo".
En d'autres mots : "On commence donc par calculer le reste de la division de a par b, qu'on note r ; puis on remplace a par b, puis b par r, et on réapplique le procédé depuis le début. On obtient ainsi une suite, qui vaut 0 à un certain rang ; le PGCD cherché est le terme précédent de la suite."

 

exo20h

Comme promis dans l'exercice 19h, il faut maintenant y répondre sans la boucle FOR, mais avec la boucle WHILE. Un rappel de l'énoncé :
Écrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier. Résolvez ce problème (sans l'usage d'arrays ou tableaux).

 

 

exo20i

Comme promis dans l'exercice 19h, il faut maintenant y répondre sans la boucle FOR, mais avec la boucle DO...WHILE. Un rappel de l'énoncé :
Écrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier. Résolvez ce problème (sans l'usage d'arrays ou tableaux).

 

 

Solutions, corrigés

 

20a Étendez l'exercice 19b en demandant à l'utilisateur de saisir un nombre ou un caractère (à la place du "1") et le nombre de lignes à afficher… rien qu'avec des boucles WHILE
1
11
111
1111
11111
111111
1111111
11111111
111111111
1111111111
20b Signification de HTML
20c Que va afficher cette boucle while ?
20d Que va afficher cette autre boucle while ?
20e Que va afficher cette dernière boucle while ?
20f Demande d'une chaine de caractères avec guilles.
20g PGCD de 2 nombres (par Euclide)

 

 

 

 

 

 

IV. Test relatif aux boucles WHILE

Le test ci-dessous n'a d'autres buts que de réagir à chaque réponse donnée à une question posée... il n'enregistre pas les réponses données, ni ne calcule les résultats...

 

A. noms de variables corrects ?

Ci dessous, vous trouverez une série de noms de variables donnés par des novices en JavaScript. Avant de cliquer sur chaque réponse, déterminez s'il s'agit d'un nom correct de variable ou s'il ne convient pas, auquel cas, à vous d'en préciser le motif.

Variable
Nom de variable
Nom_de_variable
1variable
nom@mavariable
mon-âge
mon_age
+21ans
_plus21ans
case


Break et Continue dans la boucle WHILE (20.3) | | Test : boucle WHILE (20.9)