Zyklus for in Perl

In der Programmiersprache Perl gibt es mehrere Möglichkeiten, eine Schleife. Eine Möglichkeit ist die Verwendung des Schlüsselworts for.

Hier ist ein Beispiel:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    print "$i\n";
}

Das Programm zeigt drei Zeilen mit zahlen:

0
1
2

Wie funktioniert der Zyklus for

Zyklus for in der Programmiersprache Perl sehr ähnlich Zyklus for in der Sprache Programmierung si.

Nach for in Klammern geht die 3 Code-snippets:

  • der Anfangswert
  • überprüfen
  • ändern

Zuerst wird die erste Code-snippet. Dann erfolgt die überprüfung auf die Wahrheit oder die Lüge in der zweiten Codefragment. Wenn der Test true zurückgibt, dann die Körper der Schleife ausgeführt wird, wenn der Test ergibt false, dann wird die Schleife beendet. Wenn der Körper der Schleife ausgeführt, nachdem die Ausführung von Code im Körper der Schleife der Code ausgeführt wird im Dritten Fragment, dann wieder verifiziert und alles geht weiter entlang der bereits beschriebenen Algorithmus.

Es ist möglich die Situation Rumpf der Schleife wird nicht ausgeführt kein einziges mal. So passiert wenn die erste Prüfung sofort wieder eine Lüge.

Keine Werte

Ein Interessantes Merkmal des Zyklus besteht darin, dass jeglicher Code in der Beschreibung des Zyklus möglicherweise fehlt.

Hier ist ein Beispiel für eine Schleife in der Beschreibung nicht installiert Anfangswert:

▶ Run
#!/usr/bin/perl

my $i = 0;

for (; $i < 3; $i++) {
    print "$i\n";
}

In diesem Fall, wenn in der Beschreibung des Zyklus for keine überprüfung, erstellt es eine Endlosschleife. Hier ist ein Beispiel eines for nicht in dem angegeben Test, aber noch ist dieser Zyklus abgeschlossen die überprüfung wurde im Körper der Schleife und verwendet last.

▶ Run
#!/usr/bin/perl

for (my $i=0;; $i++) {
    last unless $i < 3;
    print "$i\n";
}

In der Beschreibung des Zyklus die Dritte Fragment kann auch fehlen:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3;) {
    print "$i\n";
    $i++;
}

Wenn in der Schleife alle Fragmente zu senken, wird das als eine Endlosschleife:

#!/usr/bin/perl

for (;;) {
    print "infinity\n";
}

Die Sichtbarkeit der Variablen

Falls die Variable definiert in der Beschreibung des Zyklus, außerhalb der Schleife diese Variable nicht zur Verfügung. Wenn im Code gibt es use strict;, das eine solche Behandlung führt zu einem Fehler.

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

for (my $i=0; $i < 3; $i++) {
    print "$i\n";
}

print $i;
Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at script.pl line 10.
Execution of script.pl aborted due to compilation errors.

Wenn es notwendig ist, verwenden Sie die Variable Zähler außerhalb des Körpers des Zyklus, dann müssen Sie bestimmen Sie heraus Beschreibungen des Zyklus:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $i = 0;

for (; $i < 3; $i++) {
    print "$i\n";
}

print $i;

next und last

In Perl gibt es spezielle Schlüsselwörter, mit denen Sie Einfluss auf die Ausführung des Zyklus.

Stichwort next beendet die Ausführung der aktuellen Iteration:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    next if $i == 0;
    print "$i\n";
}

Und mit Hilfe last können Sie jederzeit beenden die Schleife:

▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    last if $i == 1;
    print "$i\n";
}

Verwandte Themen

Andere Artikel