Table des matières
À propos de ce chapitre
Ce chapitre aborde les concepts fondamentaux requis pour effectuer n'importe quelle tache avec Ruby. Vous devrez probablement traiter des données provenant de l'utilisateur, ou exécuter une tache plusieurs fois. Tout ceci sera introduit dans ce chapitre.
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.
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:
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:
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:
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:
Nous allons ici vous montrer deux autres exemples à propos des boucles dans Ruby.
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):
É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:
Que vaut la somme des entiers compris entre 1 et 1000?
Que vaut la somme des entiers compris entre 10 et 100?
É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)