Hvordan til at oprette en uendelig løkke i Perl

Der er flere måder, hvordan du kan oprette et uendeligt loop i Perl.

Brug while

Den første metode, hvorigennem du kan oprette et uendeligt loop er at bruge cyklus while. Denne løkke udføres indtil udtrykket er sandt. Som udtryk for at skrive en enkel konstant, hvilket er tilfældet i denne sag loop vil køre uendeligt. Her er et eksempel kode:

#!/usr/bin/perl

while (1) {
    # some code
}

Hvis du har brug for at fuldføre denne cyklus, så i løkken du har brug for til at udføre last. Her er et eksempel:

▶ Run
#!/usr/bin/perl

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

Bemærk, at for at afslutte løkken søgeord er brugt last, ikke returnog ikke break.

Brug for

Her er hvordan til at skrive en uendelig løkke på Perl programmeringssproget c ved hjælp af for:

#!/usr/bin/perl

for (;;) {
    # some code
}

Efter for 3 i parentes er kodestykke:

  • den oprindelige værdi
  • check
  • skift

Normalt kroppen af løkken er udført, hvis testen returnerer true. Men hvis det er forsvundne, i dette særlige tilfælde, viser det uendelig løkke.

For at afslutte denne uendelig løkke, er du nødt til at bruge last:

▶ Run
#!/usr/bin/perl

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

Brug until

Her er en anden måde, hvordan du kan skabe et uendeligt loop i Perl:

#!/usr/bin/perl

do {
    # some code
} until(0)

Koden blok udfører, indtil betingelsen i until , er en løgn.

For at komme ud af denne endeløse cyklus, også nødt til at bruge de søgeord last, men at gøre det til at virke korrekt, har du nødt til at placere alle-kode i en uendelig løkke i seler:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Her er et eksempel, hvor vi forsøger at bruge last, men ikke den medfølgende kode parentes:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Hvis du køre denne kode, vil det fejl:

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

Relaterede emner

Andre artikler