perl:boucles_for_foreach_while
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| perl:boucles_for_foreach_while [2009/03/15 00:44] – modification externe 127.0.0.1 | perl:boucles_for_foreach_while [2013/03/12 23:27] (Version actuelle) – root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Les boucles ====== | ||
| + | |||
| ====== 1. For ====== | ====== 1. For ====== | ||
| On retrouve la forme traditionnelle du C, qui se présente exactement de la même façon : | On retrouve la forme traditionnelle du C, qui se présente exactement de la même façon : | ||
| + | <code perl> | ||
| for (my $i = 0; $i < 10; $i++) { | for (my $i = 0; $i < 10; $i++) { | ||
| print " | print " | ||
| } | } | ||
| + | </ | ||
| L' | L' | ||
| Ligne 12: | Ligne 16: | ||
| Il est possible d' | Il est possible d' | ||
| + | <code perl> | ||
| my $i = 0; | my $i = 0; | ||
| for (; $i<10; ) { $i++; } | for (; $i<10; ) { $i++; } | ||
| for (;;) { # boucle infinie } | for (;;) { # boucle infinie } | ||
| + | </ | ||
| On peut également contrôler l' | On peut également contrôler l' | ||
| * **last** : quitte immédiatement la boucle courante | * **last** : quitte immédiatement la boucle courante | ||
| Ligne 22: | Ligne 27: | ||
| Ces mot-clés s' | Ces mot-clés s' | ||
| + | <code perl> | ||
| my ($x, $y); | my ($x, $y); | ||
| for ($x = 0; $x < 80; $x++) { | for ($x = 0; $x < 80; $x++) { | ||
| Ligne 29: | Ligne 35: | ||
| last if ($x * $x < 900); # Termine la boucle for ($x...) | last if ($x * $x < 900); # Termine la boucle for ($x...) | ||
| } | } | ||
| + | </ | ||
| Il est possible toutefois de nommer les boucles, et donc de préciser explicitement quelles boucles on veut arrêter, sauter ou redémarrer : | Il est possible toutefois de nommer les boucles, et donc de préciser explicitement quelles boucles on veut arrêter, sauter ou redémarrer : | ||
| + | <code perl> | ||
| BOUCLE_X: for (my $x = 0; $x < 80; $x++) { | BOUCLE_X: for (my $x = 0; $x < 80; $x++) { | ||
| BOUCLE_Y: for (my $y = 0; $y < 60; $y++) { | BOUCLE_Y: for (my $y = 0; $y < 60; $y++) { | ||
| Ligne 37: | Ligne 45: | ||
| last BOUCLE_X if ($x * $x < 900); # Termine la boucle for ($x...) | last BOUCLE_X if ($x * $x < 900); # Termine la boucle for ($x...) | ||
| } | } | ||
| + | </ | ||
| Cette forme ayant l' | Cette forme ayant l' | ||
| Ligne 43: | Ligne 52: | ||
| Pour itérer sur une liste, il existe une instruction simple, lisible et rapide : | Pour itérer sur une liste, il existe une instruction simple, lisible et rapide : | ||
| + | <code perl> | ||
| my @courses = (" | my @courses = (" | ||
| foreach my $produit (@courses) { | foreach my $produit (@courses) { | ||
| print " | print " | ||
| } | } | ||
| + | </ | ||
| Il est possible d' | Il est possible d' | ||
| + | <code perl> | ||
| foreach (@courses) { | foreach (@courses) { | ||
| print " | print " | ||
| } | } | ||
| + | </ | ||
| Enfin, on a le droit d' | Enfin, on a le droit d' | ||
| + | <code perl> | ||
| print " | print " | ||
| + | </ | ||
| L' | L' | ||
| + | <code perl> | ||
| print " | print " | ||
| for (0..9) { print " | for (0..9) { print " | ||
| + | </ | ||
| On retrouve exactement les mêmes mécanismes de nommage de boucle et de contrôle avec les mots-clés last, next et redo. | On retrouve exactement les mêmes mécanismes de nommage de boucle et de contrôle avec les mots-clés last, next et redo. | ||
| Ligne 67: | Ligne 84: | ||
| On retrouve encore une construction qui vient du C, la boucle //while// : | On retrouve encore une construction qui vient du C, la boucle //while// : | ||
| + | <code perl> | ||
| my $i = 0; | my $i = 0; | ||
| while ($i < 5) { | while ($i < 5) { | ||
| $i++; | $i++; | ||
| } | } | ||
| + | </ | ||
| Perl définit aussi son homonyme //until// où la condition est simplement inversée : | Perl définit aussi son homonyme //until// où la condition est simplement inversée : | ||
| + | <code perl> | ||
| my $i = 0; | my $i = 0; | ||
| until ($i >= 5) { | until ($i >= 5) { | ||
| $i++; | $i++; | ||
| } | } | ||
| + | </ | ||
| On peut également utiliser les mots-clés //next//, //last// et //redo//. De même que pour //for// et // | On peut également utiliser les mots-clés //next//, //last// et //redo//. De même que pour //for// et // | ||
| + | <code perl> | ||
| my $i = 0; | my $i = 0; | ||
| COMPTEUR: while ($i <= 10) { | COMPTEUR: while ($i <= 10) { | ||
| Ligne 86: | Ligne 108: | ||
| $i++; | $i++; | ||
| } | } | ||
| + | </ | ||
| Enfin, il est possible d' | Enfin, il est possible d' | ||
| + | <code perl> | ||
| my $i; | my $i; | ||
| do { | do { | ||
| $i++; | $i++; | ||
| } while ($i < 5); | } while ($i < 5); | ||
| + | </ | ||
perl/boucles_for_foreach_while.1237077870.txt.gz · Dernière modification : (modification externe)
