Les boucles en concret

From Base de connaissances eggdrops & TCL
Revision as of 22:33, 19 March 2008 by DaV34 (talk | contribs)

Jump to: navigation, search

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.