La boucle for en Perl
Dans cet article du tutoriel Perl, nous allons parler de la boucle for en Perl. Certaines personnes l'appellent également la boucle for de style C, mais cette construction est en fait disponible dans de nombreux langages de programmation.
Le mot-clé for
Le mot-clé for en Perl peut fonctionner de deux manières différentes :
- exactement comme une boucle foreach
- comme la boucle for de style C, qui est composée de trois parties
Perl détermine l'utilisation que vous avez en tête.
Je vais décrire les deux fonctionnements, même si je préfère utiliser la boucle de style foreach, comme décrit dans l'article les tableaux en Perl.
Les deux mots-clés for et foreach peuvent être utilisés comme des synonymes, voir la section foreach ci-dessous.
La boucle for de style C est composée de 3 parties dans sa section de contrôle, et d'une quatrième qui est un bloc de code. En général, elle ressemble au code ci-dessous, bien qu'il soit possible d'omettre l'une de ces 4 parties :
for (<INITIALISATION> ; <CONDITION D'EXÉCUTION> ; <INCRÉMENTATION>) { <CORPS> }
voir le code ci-dessous à titre d'exemple :
for (my $i = 0; $i <= 9; $i++) { print "$i\n"; }
La partie INITIALISATION sera exécutée une et une fois lorsque l'exécution atteint ce point.
Puis, immédiatement après INITIALISATION, la partie CONDITION D'EXÉCUTION est exécutée. Si cette condition est fausse, alors la quatrième partie { CORPS } est complètement ignorée. Si cette condition est vraie, alors :
- la quatrième partie { CORPS } est exécutée
- la troisième partie INCRÉMENTATION est exécutée juste après
(Pour la signification exacte de VRAI et FAUX en Perl, allez lire l'article Les valeurs booléennes en Perl)
Puis revient la partie
Donc, le déroulement de la boucle ressemble à ceci :
La boucle ci-dessus - allant de 0 à 9 - peut être écrit dans une boucle foreach comme
ci-dessous et je pense que l'intention est beaucoup plus claire :
Comme je l'ai indiqué dans la section précédente, for et foreach sont en fait synonymes,
de sorte que certaines personnes utilisent for pour écrire une boucle de type foreach comme ceci :
INITIALISATION est bien sûr pour initialiser une variable. Elle est exécutée une et une seule fois.
CONDITION D'EXÉCUTION est une expression booléenne qui teste si la boucle doit s'arrêter ou doit continuer.
Elle est exécutée au moins une fois. Elle est exécutée une fois de plus que CORPS et INCRÉMENTATION le sont.
CORPS est un ensemble d'instructions que nous voulons faire répéter autant de fois que CONDITION D'EXÉCUTION est vraie.
Dans certains cas, CORPS vide peut aussi être logique. En fait, ces cas devraient être réécrits d'une manière plus compréhensible sur le long terme.
INCRÉMENTATION est un autre ensemble d'instructions réduit généralement afin d'augmenter ou de diminuer un variable servant d'index.
Elle peut aussi être laissée vide si, par exemple, nous faisons ce changement à l'intérieur de CORPS.
Vous pouvez écrire une boucle infinie en utilisant la boucle for :
Habituellement, les gens l'écrivent avec une instruction while comme ci-dessous :
Elle est décrite dans l'article la boucle while en Perl.
Vous pouvez trouver la description officielle de la boucle for dans la section perlsyn de la documentation Perl.
<INITIALISATION>
<CONDITION D'EXÉCUTION> # vrai
<CORPS>
<INCRÉMENTATION>
<CONDITION D'EXÉCUTION> # vrai
<CORPS>
<INCRÉMENTATION>
...
<CONDITION D'EXÉCUTION> # faux
...
Le mot-clé foreach
foreach my $i (0..9) {
print "$i\n";
}
for my $i (0..9) {
print "$i\n";
}
Les parties de la boucle pour Perl
La boucle infinie
for (;;) {
# do something
}
while (1) {
# do something
}
perldoc
Published on 2013-06-15