Difference between revisions of "Les boucles en concret"

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
Line 40: Line 40:
 
   00:00:00 <Robot> Dans cette boucle, i vaut 9
 
   00:00:00 <Robot> Dans cette boucle, i vaut 9
 
   00:00:00 <Robot> Dans cette boucle, i vaut 10
 
   00:00:00 <Robot> Dans cette boucle, i vaut 10
 +
 +
<span style="font-size:1.4em">'''-> For'''</span>
 +
 +
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 :
 +
 +
<source lang=tcl>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"
 +
  }
 +
}</source>
 +
 +
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.
 +
 +
<span style="font-size:1.4em">'''-> Foreach'''</span>
 +
 +
Sans doute la plus utilisée (de boucle), foreach va nous permettre de manipuler des [[Listes]].

Revision as of 22:33, 19 March 2008

En Tcl, il y a 3 façons de faire une boucle. Celles-ci sont l'utilisations des "commandes" :

  1. While
  2. For
  3. Foreach

Ainsi que deux commandes que nous verrons aussi :

  1. continue
  2. break

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.