La boucle continue parce que l’on va voir comment boucler après et comment contrôler les boucles.

Boucler après

On peut mettre le while (ou le unless) après le bloc de code. Ca peut être utile d’un point de vue de la lisibilité, mais aussi pour faire en sorte de passer au moins une fois dans la boucle.

Voici un exemple de code lisible (mais ne le testez pas, il ne marche pas) :

puts "Houra!" while victoire==true

Quel que soit le test après le while, le code sera au moins exécuté une fois.

Contrôler les boucles

Les boucles sont pratiques pour effectuer des taches répétitives mais on a l’impression qu’elles vont du début à la fin de leur tâche sans que l’on puisse l’arrêter. C’est Usain Bolt : on voit le départ, l’arrivée, mais entre les deux, on ne peut rien faire. On est juste spectateur. On va y remédier.

Je vais reprendre l’exemple du Ruby Book parce que j’ai pas trouvé mieux.

my_x = 115
my_y = 40
while(my_x < 150)
my_x += 1
puts my_x
break if (my_x % my_y) == 0
end116
117
118
119
120

On a 2 variables. On fait une boucle avec un test sur my_x. A chaque boucle, on l’incrémente et on l’affiche. Cette boucle serait infinie si on n’avait pas la ligne suivante qui commence par break : on sort de la boucle si la test (my_x % my_y) == 0 est vrai. Ce pourcentage a l’air bizarre mais c’est tout bête : il donne comme résultat le reste de la division euclidienne entre les deux variables (rappelez-vous de vos cours de primaire… parce que j’ai oublié comment faire).

Pour l’instant mes exemples de code sont sans erreur (n’est-ce pas marvelous?) mais croyez-moi les erreurs de code, j’en rencontre beaucoup (même celles qui ne sont pas référencées). Il va falloir apprendre à gérer ces exceptions