Boucles

Dans cette section, nous allons vous initier à un des aspects les plus puissants de la programmation: les boucles.

Démarrez votre éditeur favori, et entrez-y les lignes suivantes :

Pouvez-vous deviner ce que fera ce bout de code? Sauvegardez le fichier sous le nom boucles.rb et exécutez-le:

Comme vous avez pu le constater, le contenu de la boucle a été exécuté 4 fois. Il s’agit probablement du moyen le plus direct que Ruby nous offre pour reproduire des taches.

Compter

Nous allons ici nous servir de ce que nous venons d’apprendre sur Ruby et les variables pour afficher les nombres compris entre 1 et 5:

Souvenez vous, la méthode Integer#to_s se charge de convertir la valeur numérique représentée par l’objet en une chaîne de caractères. Nous avons besoin de cette méthode pour pouvoir concaténer le résultat à la chaîne “count = ”.

Lors de l’exécution, vous devriez avoir ceci:

Somme de nombres

Supposons que nous devons calculer la somme de tous les nombres compris entre 1 et 11. Nous venons juste de découvrir comment obtenir les nombres compris entre 1 et 11. Il nous reste simplement à les additionner:

Et voici ce qui s’affichera à l’écran:

Étaler une expression sur plusieurs lignes

Dans le dernier exemple, l’expression puts devenait quand même longue. Que faire si nous devions afficher une ligne deux, trois, ou quatre fois plus longue?

Vous pouvez couper l’expression en plusieurs lignes, en terminant chaque ligne par le caractère «backslash» (’’).

Attention : Le caractère «backslash» doit absolument être le dernier caractère de la ligne. Si vous rajoutez un espace après, vous obtiendrez une erreur.

Essayez ceci dans IRB :

La ligne ”=> nil” signifie simplement que la méthode puts ne renvoie rien.

Note

En fait, ce n’est pas tout à fait vrai. puts renvoie quand même une valeur qui représente un état non initialisé. Ruby représente cet état particulier par l’expression nil.

Si nous avions écrit ceci:

etat = puts “Salut”

La variable etat aurait contenu nil.

Nous venons donc de voir comment étaler notre commande puts sur deux lignes. Mettons donc en pratique (dans notre programme) ce que nous venons d’apprendre:

En effet, nous pouvons utiliser cette technique pour afficher autant de lignes que nous désirons:

!http://www.ruby-doc.org/docs/beginner-fr/xhtml/figures/chp_02/loops/09.png

Vous n’êtes évidemment pas obligé de présenter la sorte du programme de cette façon. Cependant, nous pensons que l’utilisateur comprendra mieux le fonctionnement du programme. Voici ce que vous pouvez obtenir lors de son exécution:

Plus d’exemples

Nous allons ici vous montrer deux autres exemples à propos des boucles dans Ruby.

Compter à l’envers

Et si nous essayions de compter à l’envers? Ce concept peut se révéler fort utile, imaginez que la Nasa vous demande d’écrire un programme de décomptage pour leurs fusées! Essayez de copier ceci dans un nouveau programme:

Et voici le résultat fort attendu (notez que nous ne sommes pas responsables de l’explosion de votre ordinateur):

Travailler sur une variable un certain nombre de fois

Évidemment, nous pouvons utiliser des boucles pour effectuer plusieurs fois une même opération sur une même variable.

Voici un exemple pratiquement valable. Il s’agit de calculer la factorielle d’un nombre. Note

La factorielle d’un nombre est le produit de tous les nombres compris entre 1 et ce nombre. Vous me suivez? Par exemple, voici l’expression pour calculer la factorielle du nombre 6:

6! = 6 * 5 * 4 * 3 * 2 * 1 = 720

Les mathématiciens utilisent le symbole n! pour représenter la factorielle du nombre n

Tapez ceci dans un nouveau programme Ruby, et démarrez-le:

Quelques exercices

  1. Que vaut la somme des entiers compris entre 1 et 1000?
  2. Que vaut la somme des entiers compris entre 10 et 100?
  3. Écrivez un programme qui affiche les paroles de la chanson:
1 kilomètre à pied, ça use, ça use
1 kilomètre à pied, ça use, ça use les souliers 

La peinture à l'huile, c'est bien difficile
Mais c'est bien plus beau 
Que la peinture à l'eau 

2 kilomètre à pied... 

(arrêtez-vous à 100 kilomètres)

Controle de l’execution << | Apprenez Ruby | >> Saisir des données provenant de l’utilisateur