Les boucles
Troisième grande idée de l'algorithmique : la répétition. Plutôt que d'écrire dix fois la même ligne, on demande à l'ordinateur de la répéter. C'est le rôle des boucles.
répète : un nombre de fois connu
répète 3 fois
affiche 'Hip hip hip, hourra !'
fin répète
Le bloc entre répète et fin répète est exécuté 3 fois. Simple et efficace quand on connaît le nombre de tours à l'avance.
pour : compter avec une variable
pour répète un bloc en faisant varier une variable, le compteur :
pour i de 1 à 5
affiche 'Tour numéro ' + i
fin pour
i vaut 1 au premier tour, 2 au deuxième... jusqu'à 5. On peut s'en servir pour calculer :
// La table de multiplication de 7
pour i de 1 à 10
affiche '7 x ' + i + ' = ' + (7 * i)
fin pour
Avec pas, on choisit de combien le compteur avance, et même à reculons :
pour i de 10 à 0 pas -2
affiche i
fin pour
affiche 'Décollage !'
Question : Combien de fois la boucle pour i de 0 à 4 tourne-t-elle ? — 5 fois. i prend les valeurs 0, 1, 2, 3 et 4 : la boucle fait 5 tours.
tant que : répéter tant qu'une condition est vraie
Quand on ne sait pas à l'avance combien de tours il faudra, on utilise tant que :
argent est un nombre vaut 100
annees est un nombre vaut 0
tant que argent < 200
argent vaut argent * 1.1
annees ajoute 1
fin tant que
affiche 'Il faut ' + annees + ' ans pour doubler la somme.'
À chaque tour, CoddyRun vérifie la condition. Dès qu'elle devient fausse, il sort de la boucle et continue après fin tant que.
Si la condition reste toujours vraie, la boucle ne s'arrête jamais : c'est une boucle infinie. Vérifie que quelque chose change dans la boucle pour la rendre fausse un jour. CoddyRun arrête de lui-même une boucle au bout d'un million de tours.
Un jeu avec tant que
Voici un classique : deviner un nombre choisi au hasard. On ne sait pas combien d'essais il faudra, donc tant que est parfait.
secret est un nombre vaut hasard(1, 100)
essai est un nombre
coups est un nombre vaut 0
tant que essai <> secret
demande 'Ton nombre (1 à 100) ? ' dans essai
coups ajoute 1
si essai < secret alors
affiche 'Plus grand !'
sinon si essai > secret alors
affiche 'Plus petit !'
fin si
fin tant que
affiche 'Bravo, trouvé en ' + coups + ' coups !'
hasard(1, 100) tire un nombre entier au hasard entre 1 et 100.
Sortir ou sauter un tour
arrête sort immédiatement de la boucle ;continue passe directement au tour suivant.
pour i de 1 à 10
si i mod 3 = 0 alors
continue
fin si
si i > 8 alors
arrête
fin si
affiche i
fin pour
Ce programme affiche 1, 2, 4, 5, 7 et 8 : les multiples de 3 sont sautés, et la boucle s'arrête dès que i dépasse 8.
En résumé
répète n fois : un nombre de tours connu.pour i de début à fin [pas p] : un compteur qui avance tout seul.tant que condition : on répète tant que la condition est vraie.arrête sort de la boucle, continue passe au tour suivant.- Attention aux boucles infinies : la condition doit pouvoir devenir fausse.