Zarok RPG Maker
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilDernières imagesS'enregistrerConnexion
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

Partagez | 
 

 [Ruby] Cours n°7 : Boucle For

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Tonyryu
Matière
Matière
Tonyryu


Masculin Messages : 221
Age : 43
Loisirs : Making, Paintball, jeux video
Date d'inscription : 20/11/2006

Caractéristiques du membre
Evolution: Atome
Job:
XP:
[Ruby] Cours n°7 : Boucle For Left_bar_bleue20/20[Ruby] Cours n°7 : Boucle For Empty_bar_bleue  (20/20)

[Ruby] Cours n°7 : Boucle For Empty
MessageSujet: [Ruby] Cours n°7 : Boucle For   [Ruby] Cours n°7 : Boucle For EmptyMer 18 Avr 2007 - 13:32

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éfinit 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 :
Code:
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) :
Code:
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 :
Code:
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.
Code:
Fonction : ViderMesBouteilles

Variables :
  monPannier est un pannier de bouteille contenant du liquide
 
Debut :
 | Pour chaque bouteille de monPannier
 |  | vider la bouteille
 | FinPour
Fin

Dans cette 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 :
Code:
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.


pour le prochain cours : fonction et procédure
Revenir en haut Aller en bas
http://www.tonyryudev.com
 

[Ruby] Cours n°7 : Boucle For

Voir le sujet précédent Voir le sujet suivant Revenir en haut 

 Sujets similaires

-
» [Ruby] Cours n°6 : Boucle Loop do et while
» [Ruby] Cours n°4 : structure if
» [Ruby] Cours n°9 : POO - Classes et Objets
» [Ruby] Cours n°1 : Les variables
» [Ruby] Cours n°2 : Les tableaux
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Zarok RPG Maker :: 

 :: TUTORIELS :: Tutoriels de Programmation
-
Sauter vers: