C_facile : Introduction au langage C
Cours

Choix de la boucle

Exemple

Nous disposons de trois types de boucle "pour", "tant que ... faire" et "faire ... tant que".

Il n'y a pas de règles pour choisir le type de boucle à utiliser.

En effet, l'exemple de l'affichage des trois premiers chiffres (0, 1 et 2) le montre : on peut trouver des formulations équivalentes avec, éventuellement, des tests supplémentaires.

Par exemple, on peut fabriquer une boucle "while" avec une boucle "do" :

if (condition) do

bloc_instructions

while (condition)

Puisqu'un test supplémentaire est utilisé avant de lancer la boucle "do", si ce dernier est faux alors la boucle ne sera pas effectuée. Ce qui revient à avoir une boucle "while".

Exemple

Autre exemple, si l'on veut faire une boucle "do" avec une boucle "while" :

bloc_instructions

while (condition)

bloc_instructions

En ajoutant une copie du bloc d'instructions avant la boucle "while", on a la garantie qu'il est exécuté au moins une fois, ce qui revient à avoir une boucle "do". Cependant, il est plus judicieux de faire le bon choix dès le départ, et de choisir des formes de boucles qui facilitent la lisibilité du programme.

Complément

Revenons sur les cinq exemples introduits au début du chapitre.

  1. Intérêts d'un livret bancaire : les données sont la somme d'argent « S », le taux d'intérêt « interet », et le nombre d'année « nb_annee ». Le nombre d'itérations est fixé par le nombre d'années, il est connu, il faut utiliser une boucle « for ».

  2. Le calcul de la factorielle de n : la donnée est le nombre « n » qui est connu il faut utiliser une boucle « for ».

  3. Nous désirons effectuer la saisie d'un nombre « n » compris dans l'intervalle [a,b]. La donnée est le nombre « n ». On ne sait pas combien de saisies seront nécessaires pour avoir le nombre dans l'intervalle souhaité, il faut utiliser une boucle à bornes non définies. Il faut effectuer au moins une saisie, il vaut mieux utiliser une boucle "do".

  4. Le nombre de chiffre : la donnée est « n », le nombre. Nous ne connaissons pas le nombre de chiffres qui le compose puisque c'est ce que l'on recherche, il faut utiliser une boucle à bornes non définies. Si initialement « n » ne comporte qu'un unique chiffre aucune itération n'est nécessaire, il vaut mieux utiliser une boucle « while ».

  5. Les vases communicants : les données sont « n1 » et « n2 ». Il faut arrêter quand « n1 » et « n2 » sont égaux. Tel que le problème est formulé, il faut utiliser une boucle à bornes non définies car on ne sait pas combien de fois nous allons transvaser. Si initialement « n1 » est égal à « n2 » aucune itération n'est nécessaire, il vaut mieux utiliser une boucle while.

La section suivante vous offre quelques conseils pour choisir judicieusement le type de boucle à appliquer.

Conseils (page suivante)Boucles imbriquées (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI