Jak stworzyć nieskończoną pętlę w Perl

Istnieje kilka sposobów, jak można stworzyć nieskończoną pętlę w Perlu.

Używać while

Pierwszy sposób, za pomocą którego można stworzyć nieskończoną pętlę — to użyć cykl while. Ten cykl jest wykonywany gdy wyrażenie jest prawdą. Można jako wyrażenia napisać prostą stałą, która jest prawdą i w takim przypadku cykl będzie działać w nieskończoność. Oto przykład kodu:

#!/usr/bin/perl

while (1) {
    # some code
}

Jeśli chcesz zakończyć pracę tego cyklu, to w pętli należy wykonać last. Oto przykład:

▶ Run
#!/usr/bin/perl

my $i = 0;
while (1) {
    print $i;
    last if $i > 2;
    $i++;
}

Należy pamiętać, że do wyjścia z pętli służy słowo kluczowe last, a nie returni nie break.

Używać for

Oto jak napisać nieskończoną pętlę w języku programowania Perl c użyciu for:

#!/usr/bin/perl

for (;;) {
    # some code
}

Po for w nawiasach idzie 3 fragmentu kodu:

  • wartość początkowa
  • sprawdzanie
  • zmiana

Zazwyczaj ciało pętli jest wykonywana w przypadku, gdy kontrola zwraca prawdę. Ale jeśli test nie ma, w tym szczególnym przypadku okazuje się nieskończoną pętlę.

Aby wyjść z tego nieskończonego cyklu trzeba użyć last:

▶ Run
#!/usr/bin/perl

for (my $i = 0;;$i++) {
    print "$i";
    last if $i > 2;
}

Używać until

Oto jeszcze jeden sposób, w jaki sposób można stworzyć nieskończoną pętlę w Perlu:

#!/usr/bin/perl

do {
    # some code
} until(0)

Blok kodu jest wykonywana dopóki warunek w until jest kłamstwem.

Aby wyjść z tego nieskończonego cyklu też trzeba użyć słowa kluczowego last, ale żeby to zadziałało poprawnie należy umieścić cały kod nieskończonego cyklu w nawiasach:

▶ Run
#!/usr/bin/perl

my $i = 0;

{
    do {
        print $i;
        last if $i > 2;
        $i++;
    } until(0)
}

Oto przykład, w którym staramy się korzystać z last, ale nie обрамляем kod w nawiasach:

▶ Run
#!/usr/bin/perl

my $i = 0;

do {
    print $i;
    last if $i > 2;
    $i++;
} until(0)

Gdyby ten kod, to będzie błąd:

Can't "last" outside a loop block at script.pl line 7.
0123

Tematy pokrewne

Inne artykuły