DébutantNon commencé
Exercice 3.1 · 8 min · 0 tentative
La boucle while
🎯 Objectif
Utiliser while pour répéter des instructions quand on ne sait pas combien de fois il faudra répéter.
📖 Contexte
Quand utiliser while ?
while est utile quand le nombre de répétitions est inconnu. On sait juste quand s'arrêter :
// On double l'argent jusqu'à dépasser un seuil
let argent = 1
while (argent < 1000) {
argent = argent * 2
}
console.log(argent) // 1024
On ne savait pas que ça prendrait 10 doublements. C'est while qui a compté pour nous !
Comment ça fonctionne ?
- Vérifier la condition →
argent < 1000? - Si
true→ exécuter le bloc - Revenir à l'étape 1
- Si
false→ sortir de la boucle
while vs for
| Boucle | Quand l'utiliser | Exemple |
|---|---|---|
for | Nombre de répétitions connu | Afficher de 1 à 10 |
while | Nombre de répétitions inconnu | Doubler jusqu'à dépasser 1000 |
// for : on SAIT qu'on veut 5 tours
for (let i = 1; i <= 5; i++) {
console.log(i)
}
// while : on NE SAIT PAS combien de tours
let n = 1
while (n < 100) {
n = n * 3 // 3, 9, 27, 81, 243 → 5 tours ? On ne le savait pas !
}
Attention aux boucles infinies ! Si la condition reste toujours true, la boucle ne s'arrête jamais et le navigateur se bloque. Assure-toi que quelque chose change dans le bloc pour que la condition finisse par devenir false.
📝 Consigne
- Argent : Remplace
___par la conditionargent < 1000et le doublementargent * 2 - Combat : Remplace
___par la conditionpv > 0et la pertepv - 7
Résultat attendu :
Jour 1 : 2 CHF
Jour 2 : 4 CHF
Jour 3 : 8 CHF
Jour 4 : 16 CHF
Jour 5 : 32 CHF
Jour 6 : 64 CHF
Jour 7 : 128 CHF
Jour 8 : 256 CHF
Jour 9 : 512 CHF
Jour 10 : 1024 CHF
Il faut 10 jours pour dépasser 1000 CHF !
Tour 1 : 93 PV
Tour 2 : 86 PV
...
Tour 14 : 2 PV
Tour 15 : -5 PV
K.O. après 15 tours !
Objectifs
- Condition while pour l'argent
- Doubler l'argent
- Condition while pour les PV
- Perdre des PV
- Résultat du doublement
- Résultat du combat
Lis bien les instructions et lance-toi !
Indices (0/3)
Indice 1 verrouillé
Indice 2 verrouillé
Indice 3 verrouillé