Boucle (for et while)
NSI Première
Définition
Une boucle est une structure de contrôle qui répète un bloc d'instructions. La boucle `for` parcourt les éléments d'une séquence (souvent un intervalle créé par `range`) : on l'utilise quand le nombre de répétitions est connu à l'avance. La boucle `while` répète tant qu'une condition reste vraie : on l'utilise quand le nombre de répétitions est inconnu mais dépend d'un test.
Formule
$$\texttt{range(n)} \;\equiv\; 0,\,1,\,2,\,\dots,\,n-1 \quad (n \text{ itérations})$$
Exemple corrigé
Énoncé
Écrire un programme qui calcule la somme des entiers de 1 à 100, une fois avec une boucle `for`, une fois avec une boucle `while`.
Solution
Avec `for`, on parcourt `range(1, 101)` (qui s'arrête à 100 inclus). Avec `while`, on incrémente un compteur tant qu'il ne dépasse pas 100.
```python
# Version for
somme = 0
for i in range(1, 101): # i prend les valeurs 1, 2, ..., 100
somme = somme + i
print(somme) # 5050
# Version while
somme = 0
i = 1
while i <= 100:
somme = somme + i
i = i + 1
print(somme) # 5050
```
Vérification par la formule de Gauss : $\dfrac{100 \times 101}{2} = 5050$.
$\boxed{\texttt{somme} = 5050}$
Erreurs classiques
- Oublier dans une boucle `while` de faire évoluer la variable de condition (ex. `i = i + 1`), ce qui crée une boucle infinie.
- Croire que `range(1, 101)` s'arrête à 101 : la borne supérieure est exclue, donc on s'arrête à 100.
Pour aller plus loin : le chapitre « Python : bases de la programmation » (cours et exercices corrigés).