Difference between revisions of "Les boucles en concret"
Line 60: | Line 60: | ||
<span style="font-size:1.4em">'''-> Foreach'''</span> | <span style="font-size:1.4em">'''-> Foreach'''</span> | ||
− | Sans doute la plus utilisée (de boucle), foreach va nous permettre de manipuler des [ | + | Sans doute la plus utilisée (de boucle), foreach va nous permettre de manipuler des listes. |
+ | |||
+ | Je vais plus simplement m'appuyer d'un exemple pour vous montrez l'utilisatée(ation) de cette boucle : | ||
+ | |||
+ | <source lang=tcl>set admin [list "DaV34" "CrazyCat"] | ||
+ | bind pub - !administrateurs pub:administrateurs | ||
+ | proc pub:administrateurs {nick host hand chan arg} { | ||
+ | global admin | ||
+ | foreach a $admin { | ||
+ | puthelp "PRIVMSG $chan :$a est un administrateur" | ||
+ | } | ||
+ | }</source> | ||
+ | |||
+ | <i>Une fois que vous avez taper !administrateurs sur un salon ou se trouve l'eggdrop, voila ce qu'il vous retourne :</i> | ||
+ | |||
+ | DaV34 est un administrateur | ||
+ | CrazyCat est un administrateur | ||
+ | |||
+ | En espérant que vous ayez comprit, car cela est relativement simple. |
Revision as of 22:42, 19 March 2008
En Tcl, il y a 3 façons de faire une boucle. Celles-ci sont l'utilisations des "commandes" :
Ainsi que deux commandes que nous verrons aussi :
Je vous conseille donc avant de poursuivre d'avoir lu la doc de chacune de ses commandes.
-> While
Pour faire simple, ont pourrait, on pourrait appeller "while" l'opérateur "tant que".
En effet, en gros, nous allons effectuer des opérations "tant que" certaines conditions son valider.
Voyez en concret :
bind pub - !test pub:test
proc pub:test {nick host hand chan arg} {
set i 0
while {$i < 10} {
puthelp "PRIVMSG $chan :Dans cette boucle, i vaut $i"
incr i
}
}
Concrètement, quand vous taperez !test sur un salon ou se trouvera votre eggdrop, la boucle se lancera et vous devriez voir apparaitre sur votre chan :
00:00:00 <Robot> Dans cette boucle, i vaut 0 00:00:00 <Robot> Dans cette boucle, i vaut 1 00:00:00 <Robot> Dans cette boucle, i vaut 2 00:00:00 <Robot> Dans cette boucle, i vaut 3 00:00:00 <Robot> Dans cette boucle, i vaut 4 00:00:00 <Robot> Dans cette boucle, i vaut 5 00:00:00 <Robot> Dans cette boucle, i vaut 6 00:00:00 <Robot> Dans cette boucle, i vaut 7 00:00:00 <Robot> Dans cette boucle, i vaut 8 00:00:00 <Robot> Dans cette boucle, i vaut 9 00:00:00 <Robot> Dans cette boucle, i vaut 10
-> For
Avec la boucle For, c'est simple, il n'est pas question la de "tant que" ou autre délire du genre.
For est une boucle définie sur deux nombres qui définiront le nombre de fois que l'on va faire quelque chose :
bind pub - !test pub:test
proc pub:test {nick host hand chan arg} {
for {set x 0} {$x<10} {incr x} {
puthelp "PRIVMSG $chan :Dans cette boucle, i vaut $i"
}
}
Cette source nous donnera exactement le même résultat que ce que l'on a obtenue avec la boucle while.
Donc quelque chose qu'on constate souvent, remarquez qu'il y a souvent plusieurs façon de faire ce que l'on veut, et n'oubliez surtout pas que les solutions les plus simples sont toujours les meilleures.
-> Foreach
Sans doute la plus utilisée (de boucle), foreach va nous permettre de manipuler des listes.
Je vais plus simplement m'appuyer d'un exemple pour vous montrez l'utilisatée(ation) de cette boucle :
set admin [list "DaV34" "CrazyCat"]
bind pub - !administrateurs pub:administrateurs
proc pub:administrateurs {nick host hand chan arg} {
global admin
foreach a $admin {
puthelp "PRIVMSG $chan :$a est un administrateur"
}
}
Une fois que vous avez taper !administrateurs sur un salon ou se trouve l'eggdrop, voila ce qu'il vous retourne :
DaV34 est un administrateur CrazyCat est un administrateur
En espérant que vous ayez comprit, car cela est relativement simple.