Boucles et instructions

Boucles bornées et non bornées

Les boucles s’utilisent pour répéter plusieurs fois l’exécution d’une partie du programme. Ainsi il y’a deux types de boucles, celles bornées et non bornées.

Quand on sait combien de fois doit avoir lieu la répétition, on utilise généralement une boucle FOR qui est une boucle bornée.

Si on ne connait pas à l’avance le nombre de répétitions, on choisit une boucle WHILE, qui est donc non bornée dont on pourra gérer l’arrêt avec une ou plusieurs conditions.

La boucle for :

L’instruction for est une instruction composée, c’est-à-dire une instruction dont l’en-tête se termine par deux-points « :« , suivie d’un bloc indenté qui constitue le corps de la boucle.

On dit que l’on réalise une itération de la boucle à chaque fois que le corps de la boucle est exécuté.

Dans l’en-tête de la boucle, on précise après le mot-clé for le nom d’une variable (i dans l’exemple ci-dessus) qui prendra successivement toutes les valeurs qui sont contenues dans la liste après le mot-clé in. On dit souvent que cette variable (ici i) est un compteur car elle sert à numéroter les itérations de la boucle.

On peut prendre ici comme exemple un professeur qui pour établir la liste des absents prend un nom dans la liste des élèves vérifie si l’élève est présent, prend note puis passe à l’élève suivant.

De plus, il est possible d’obtenir le même résultat sans donner la liste des valeurs, mais en utilisant la fonction range() qui va nous retourner une rangée de nombre. Son utilisation est préférable car ici on pourra spécifier la valeur initiale de « i », la valeur de fin ( i s’arrêtera à valeur – 1 ) et le pas qui est la différence entre deux « i » consécutifs.

Par exemple pour une valeur de départ à 1, une valeur d’arrêt à 10 et un pas de 2 on aura

La boucle while :

Une boucle while répètera une ou plusieurs actions tant que sa condition d’arrêt n’est pas validée. En outre on peut dire qu’elle suit le fonctionnement suivant:

organigramme de la boucle WHILE

Dans l’exemple ci-dessous, on multipliera notre variable x par 2 tant que sa valeur reste inférieure à 10.

Le mot-clé while signifie tant que en anglais. Le corps de la boucle (c’est-à-dire le bloc d’instructions indentées) sera répété tant que la condition est vraie.

Remarque : Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté. Si la condition reste toujours vraie, alors le corps de la boucle est répété indéfiniment.

Comment choisir entre boucle for et boucle while:

En général, si on connaît avant de démarrer la boucle le nombre d’itérations à exécuter, on choisit une boucle for. Au contraire, si la décision d’arrêter la boucle ne peut se faire que par un test, on choisit une boucle while.

Remarque : Il est toujours possible de remplacer une boucle for par une boucle while.

Le programme ci-dessus est équivalent à:

Les instructions break, continue et la clause else

L’instruction break :

L’instruction break permet de « casser » l’exécution d’une boucle (while ou for). Elle fait sortir de la boucle et passer à l’instruction suivante.

Exemple :

Remarque : Dans le cas de boucles imbriquées, l’instruction break ne fait sortir que de la boucle la plus interne.

L’instruction continue :

L’instruction continue permet de passer prématurément au tour de boucle suivant. Elle fait continuer sur la prochaine itération de la boucle.

Exemple :

La clause else dans une boucle :

La clause else dans un boucle permet de définir un bloc d’instructions qui sera exécuté à la fin seulement si la boucle s’est déroulée complétement sans être interrompue par un break.

Contrairement aux instructions présentes après la boucle, qui s’exécutent dans tous les cas (avec ou sans interruption par un break), le bloc d’instructions défini dans la clause else ne s’exécutera pas lors de l’interruption par un break. Après l’interruption, on passera directement aux instructions après la boucle.

Autrement dit, le bloc de la clause else est exécuté lorsque la boucle se termine par épuisement de la liste (avec for) ou quand la condition devient fausse (avec while), mais pas quand la boucle est interrompue par un break. Ceci est illustré dans la boucle suivante, qui recherche des nombres premiers :

Amalet Charlie

Bienvenue à toi, moi c'est Charlie, étudiant en prépa Informatique Électronique à Tunis. je me suis depuis très longtemps épris pour tout ce qui touche aux sciences technologiques et notamment aux langages de programmation. J'ai donc décidé de m' auto former tout en partageant ici l'ensemble de tout ce que je sais sur le langage Python. Alors c'est pour moi un grand honneur de pouvoir t'aider dans ta quête de savoir. Je te dis donc à la prochaine pour encore plus de contenus.

%d blogueurs aiment cette page :