Les boucles

Objectifs

  • Comprendre la notion de boucle

  • Savoir faire un while

  • Savoir faire un for

DéfinitionBoucle

En programmation une boucle est une structure qui permet de répéter plusieurs fois un même bloc d'instructions.

Boucle while

La boucle while (signifiant "tant que" en anglais) permet de répéter un bloc d'instruction tant qu'une condition est remplie. Elle se base sur les mêmes types de conditions que les structures conditionnelles.

Syntaxe

Pour écrire cette boucle, il suffit d'utiliser le mot clef while suivi des conditions à remplir pour continuer la boucle. Le bloc d'instructions est délimité par un do en début et un done à la fin.

1
while [ -z $reponse ] || [ $reponse != 'bonjour' ]
2
do
3
  read -p 'Dites "bonjour" : ' reponse
4
done

La commande read permet de demander à l'utilisateur de saisir une valeur au clavier, et met cette valeur dans la variable reponse. La boucle while va demander à l'utilisateur de rentrer une valeur tant que la variable reponse n'est pas définie ou qu'elle ne contient pas le mot "bonjour".

Boucle for

La boucle while est intéressante lorsque l'on ne sait pas à l'avance combien de fois on va refaire la boucle (on parle d'itérations). Cependant dans certains cas on sait à l'avance combien de tours de boucle on souhaite faire, par exemple si l'on souhaite appliquer un même traitement à une liste de variables. Dans ce cas, on utilise la boucle for.

Syntaxe

La syntaxe de la boucle for est la suivante :

1
for ELEMENT in LISTE
2
do
3
  INSTRUCTIONS
4
done

La LISTE est une successions de valeurs sur lesquelles on va itérer. À chaque tour de boucle, une variable nommée ELEMENT va être utilisable dans tout le bloc d'INSTRUCTIONS. Une fois que chaque élément de la liste a été traité, la boule s'arrête.

ExempleBoucle sur une variable

Cette boucle for permet de saluer différentes personnes à la suite.

1
for nom in "Kyâne" "Stéphane" "Quentin"
2
do
3
  echo "Bonjour $nom"
4
done
5
1
$ ./script.sh 
2
Bonjour Kyâne
3
Bonjour Stéphane
4
Bonjour Quentin

Dans Bash les listes sont généralement des éléments séparés par des espaces. De ce fait il est courant de mettre la liste des éléments dans une variable et de l'utiliser dans l'instruction for.

1
personnes="Kyâne Stéphane Quentin"
2
for nom in $personnes
3
do
4
  echo "Bonjour $nom"
5
done
6

ExempleBoucle sur une commande

Il est aussi possible d'utiliser la boucle for pour faire un nombre précis d'itérations.

1
for i in {1..10}
2
do
3
    echo "$i"
4
done

Utiliser {1..10} permet d'indiquer à l'instruction for qu'il faut itérer sur tout les nombres de 1 à 10 (inclus). Dans ce cas la variable (ici i) va contenir le nombre auquel on se trouve dans la boucle.

À retenir

Les boucles permettent de réaliser plusieurs fois le même bloc d'instructions. La boucle while est pratique pour boucler tant qu'une condition n'est pas remplie, tandis que la boucle for est utilisé pour exécuter une instruction un nombre défini de fois.