SunuLab
Notre savoir
CoursDébutant9 min de lecture

Les boucles - répéter sans copier-coller

for, while, et comment dessiner un cercle ou une étoile en 3 lignes au lieu de 20

§1.Pourquoi des boucles ?

Tu as appris à dessiner un carré avec 8 lignes : 4 avancer et 4 tourner_droite. Un peu fastidieux. Maintenant imagine un polygone à 50 côtés : il te faudrait 100 lignes identiques. Pas question.

Les programmeurs sont fondamentalement paresseux (au bon sens du terme) : quand quelque chose se répète, ils inventent un moyen de ne l'écrire qu'une seule fois. C'est exactement le rôle d'une BOUCLE : un morceau de code qui dit « répète ce qui suit N fois ».

Quand tu utilises une boucle, tu ne dis plus à l'ordinateur QUOI faire 50 fois ; tu lui dis COMMENT le faire une fois, et combien de fois répéter. C'est un saut d'abstraction énorme. Tu commences à programmer comme un vrai développeur.

§2.Le carré, version manuelle vs version boucle

Pour bien voir la différence, comparons les deux versions du même carré.

Version SANS boucle (8 lignes)
javascript
avancer(100)
tourner_droite(90)
avancer(100)
tourner_droite(90)
avancer(100)
tourner_droite(90)
avancer(100)
tourner_droite(90)

Quatre fois la même séquence. Si tu veux changer la taille de 100 à 80, tu dois modifier 4 nombres. Si tu veux un pentagone, tu dois tout réécrire.

Version AVEC boucle (3 lignes)
javascript
for (let i = 0; i < 4; i++) {
avancer(100)
tourner_droite(90)
}
Résultat : Exactement le même carré.

Lis-le à voix haute : « répète 4 fois : avance de 100, tourne de 90° ». C'est exactement ce que ferait un humain qui dessine.

§5.Anatomie d'une boucle for

let i = 0
La variable de compteur démarre à 0. On l'appelle i par convention (comme « index »), mais tu peux l'appeler autrement.
i < 4
La condition de continuation. Tant qu'elle est vraie, la boucle continue. Dès qu'elle devient fausse, on sort.
i++
Ce qu'on fait à chaque tour. i++ veut dire « ajoute 1 à i ». Donc i prend les valeurs 0, 1, 2, 3, puis 4 — mais à 4 la condition i < 4 devient fausse, on sort.
Le bloc { ... }
Tout ce qui est entre les accolades est répété à chaque tour. Indentation à 2 espaces pour la lisibilité (mais pas obligatoire pour le programme).

§6.Le truc magique : 360° / N côtés

Pour TOUS les polygones réguliers (triangle, carré, pentagone, hexagone…), il existe une règle : la somme des angles extérieurs vaut toujours 360°. Donc l'angle de rotation à chaque coin = 360° / nombre de côtés.

Triangle équilatéral : 360/3 = 120°. Carré : 360/4 = 90°. Pentagone : 360/5 = 72°. Hexagone : 360/6 = 60°. Et ainsi de suite.

Plus tu mets de côtés, plus la rotation est petite, plus la forme ressemble à un cercle.

Exemple : un hexagone
javascript
for (let i = 0; i < 6; i++) {
avancer(80)
tourner_droite(60) // 360 / 6
}
Résultat : Un hexagone régulier.
Polygone universel

Avec une variable pour le nombre de côtés, le même code dessine n'importe quel polygone régulier.

javascript
const cotes = 12
for (let i = 0; i < cotes; i++) {
avancer(40)
tourner_droite(360 / cotes)
}
Résultat : Un dodécagone (12 côtés). Change cotes en 3 pour un triangle, 5 pour un pentagone, 50 pour un quasi-cercle.

§9.Utiliser la variable de boucle

À l'intérieur de la boucle, la variable i prend des valeurs différentes à chaque tour : 0, 1, 2, etc. Tu peux utiliser cette valeur dans tes calculs pour faire varier le dessin.

Exemple : escaliers décroissants
javascript
for (let i = 0; i < 10; i++) {
avancer(100 - i * 8) // taille qui diminue
tourner_droite(90)
}
Résultat : Une spirale qui rétrécit à chaque tour.

Au premier tour i = 0, donc on avance de 100. Au deuxième i = 1, donc 92. Puis 84, 76… La taille diminue, créant une spirale.

§11.La boucle while - quand tu ne connais pas le nombre exact

while (condition) { ... }
Répète le bloc TANT QUE la condition est vraie. Dès qu'elle devient fausse, on sort de la boucle. Utile quand tu ne sais pas à l'avance combien de tours il faudra.
Attention aux boucles infinies
Si la condition ne devient JAMAIS fausse, ta boucle tourne pour toujours. SunuCode te protège après 200 000 commandes, mais c'est mieux d'éviter — fais EVOLUER quelque chose à l'intérieur du bloc.
Exemple : spirale carrée qui s'arrête
javascript
let taille = 5
while (taille < 150) {
avancer(taille)
tourner_droite(90)
taille = taille + 5 // crucial : modifie la condition
}
Résultat : Une spirale qui démarre toute petite et grandit jusqu'à dépasser 150.

§14.Boucles imbriquées : une boucle dans une boucle

Tu peux mettre une boucle DANS une autre boucle. C'est ce qu'on appelle des boucles imbriquées. Très utile pour des grilles, des motifs répétés, des rosaces.

L'idée : la boucle externe répète quelque chose qui contient lui-même une répétition. Par exemple : 36 fois, dessine un carré (qui demande lui-même 4 répétitions).

Rosace de 36 carrés
javascript
for (let i = 0; i < 36; i++) {
// dessine un carré
for (let j = 0; j < 4; j++) {
avancer(60)
tourner_droite(90)
}
// pivote avant le carré suivant
tourner_droite(10)
}
Résultat : 36 carrés tournés chacun de 10°, formant une fleur géométrique.

La boucle externe (i de 0 à 35) répète 36 fois. À chaque tour, la boucle interne (j de 0 à 3) dessine un carré, puis on pivote de 10° avant de recommencer.

À retenir

  • Une boucle = répéter du code sans copier-coller.
  • for (let i = 0; i < N; i++) répète N fois exactement.
  • while (condition) répète tant que la condition est vraie.
  • Pour un polygone régulier à N côtés : tourner de 360/N à chaque coin.
  • Tu peux utiliser la variable i pour faire varier ce que la boucle fait à chaque tour.
  • Boucles imbriquées = motifs complexes (rosaces, grilles, fractales).
  • Méfie-toi des boucles infinies — toujours une condition d'arrêt qui évolue.
Mots-clésboucleforwhileitérationrépétitionpolygone