Les boucles
Objectifs
Comprendre la notion de boucle
Savoir faire un
while
Savoir faire un
for
Définition : Boucle
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.
while [ -z $reponse ] || [ $reponse != 'bonjour' ]
do
read -p 'Dites "bonjour" : ' reponse
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 :
for ELEMENT in LISTE
do
INSTRUCTIONS
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.
Exemple : Boucle sur une variable
Cette boucle for
permet de saluer différentes personnes à la suite.
for nom in "Kyâne" "Stéphane" "Quentin"
do
echo "Bonjour $nom"
done
$ ./script.sh
Bonjour Kyâne
Bonjour Stéphane
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
.
personnes="Kyâne Stéphane Quentin"
for nom in $personnes
do
echo "Bonjour $nom"
done
Exemple : Boucle sur une commande
Il est aussi possible d'utiliser la boucle for
pour faire un nombre précis d'itérations.
for i in {1..10}
do
echo "$i"
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.