Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

272 connectés actuellement

30834969 visiteurs
depuis l'ouverture

2236 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

New RPG Maker

RPG Maker - La Communauté

RPG Maker VX

Level Up!

Hellsoft

Tous nos partenaires

Devenir
partenaire



[Ruby] Cours n°7 : Boucle for

Série de tutoriels sur le Ruby. On aborde ici for, une structure de boucle particulière.

Ecrit par Tonyryu le 02/08/2013


❤ 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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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.


Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers