❤ 0 Sommaire
Ruby
Les variables
Les tableaux
Les booléens et les calculs logiques
Structure de if
Structure de case
Boucles loop do et while
>> Boucle for <<
Fonctions et procédures
POO - Classes et objets
RGSS
Débuter avec le RGSS
Module Input
Bitmap, Color, Sprite
Structure de base des classes Scene et Window
[Ruby] Cours n°7 : Boucle for
La boucle for ("Pour" en français) est sensiblement identique aux autres structures de boucle. Elle permet juste en plus de modifier une variable définie dans sa structure.
Retournons dans la cuisine, pour trouvez un lot de bouteilles vides. J'ai 5 bouteilles numérotées de 0 à 4. Je souhaite toutes les remplir d'eau, je vais donc faire ces actions :
Citation: Fonction : RemplirMesBouteilles
Variables :
mesBouteilles est un lot de bouteille contenant du liquide
Début :
| mesBouteilles[0] <- eau
| mesBouteilles[1] <- eau
| mesBouteilles[2] <- eau
| mesBouteilles[3] <- eau
| mesBouteilles[4] <- eau
Fin |
Heureusement que je n'en ai pas touvé 50, sinon ça devient très vite répétitif. Cependant, on constate que chaque ligne est identique, sauf pour le numéro de mes bouteilles, c'est là que l'on va pouvoir voir l'avantage de la boucle 'For'.
Je revide mes bouteilles pour recommencer le remplissage, mais en algorythme, je vais utiliser 'for' (Pour) :
Citation: Fonction : RemplirMesBouteilles
Variables :
mesBouteilles est un lot de bouteille contenant du liquide
numBouteille est un entier
Début :
| Pour numBouteille allant de 0 à 4 par pas de 1
| | mesBouteilles[numBouteille] <- eau
| FinPour
Fin |
Vous pouvez constater que cela prend moins de place en écriture. Bon d'accord, avec 5 bouteilles, c'est pas vraiment flagrant, mais imaginez avec 50!!
Et hop en Ruby, voila ce que ça donne :
1
2
3
4
5
6
7
8
| def remplirMesBouteilles
mesBouteilles = []
numBouteille = 0
for numBouteille in 0..4
mesBouteilles[numBouteille] = "eau"
end
end |
donc pour la syntaxe :
for [nom de la variable] in [valeur de départ]..[valeur de fin]
[Action]
end
Lors de l'entrée dans la structure la variable prend la valeur de début, puis à chaque boucle, la valeur est incrémenté d'un. Dans ce cas la valeur de fin est prise en compte. Si l'on met :
for [nom de la variable] in [valeur de départ]...[valeur de fin]
[Action]
end
La valeur de fin n'est pas prise en compte. Attention donc au nombre de '.', c'est souvent une grande source d'incompréhension dans cette structure de boucle.
On peut trouver aussi une autre utilité à la boucle For. Supposons que je reprenne un pannier de bouteilles, et que ma fonction consiste à vider chaque bouteille.
Citation: Fonction : ViderMesBouteilles
Variables :
monPannier est un pannier de bouteille contenant du liquide
Debut :
| Pour chaque bouteille de monPannier
| | vider la bouteille
| FinPour
Fin |
Dans cet algorythme, il n'y a plus de notion de valeur de fin ou de début pour la boucle. La boucle 'Pour', va parcourir chaque élément d'un tableau et mettre son contenu dans la variable utilisé. Le même exemple en ruby :
1
2
3
4
5
6
7
8
| def viderMesBouteilles
monPannier = ["eau","vin rouge", "jus d'orange", "cola", "lait"]
for maBouteille in monPannier
vider(maBouteille)
end
end |
Dans ce cas, à chaque boucle, la variable prend pour valeur le contenue d'un élément successif du tableau, du premier élément au dernier.
Source
- Tonyryu, "[Ruby] Cours n°7 : Boucle for", TonyryuDev, écrit le 2 août 2013 [consulté le 4 juillet 2021], https://web.archive.org/web/20181202044059/http://www.tonyryudev.com/joomla3/index.php/menu-mes-developpements/menu-cours-ruby-rgss/8-ruby-cours-n-7-boucle-for
Ce tutoriel a été posté avec l'accord de son auteur.
|