Siklus for di Perl

Dalam bahasa pemrograman Perl ada beberapa cara untuk membuat lingkaran. Salah satu cara adalah dengan menggunakan kata kunci for.

Berikut ini sebuah contoh:

▶ Run
#!/usr/bin/perl

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

Program ini menampilkan tiga baris dengan angka:

0
1
2

Bagaimana siklus for

Siklus for di Perl bahasa pemrograman sangat mirip dengan siklus forbahasa Pemrograman C.

Setelah for dalam tanda kurung 3 adalah kode snippet:

  • nilai awal
  • cek
  • perubahan

Pertama, jalankan terlebih dahulu potongan kode. Kemudian check untuk benar atau salah dalam kedua potongan kode. Jika validasi mengembalikan true itu mengeksekusi loop tubuh jika tes mengembalikan false, maka loop berakhir. Jika anda berlari tubuh loop, setelah mengeksekusi kode dalam tubuh loop kode dieksekusi di bagian ketiga, maka pemeriksaan dilakukan lagi dan semuanya berjalan sesuai dengan yang sudah dijelaskan algoritma.

Itu mungkin situasi tubuh loop tidak akan dieksekusi sekali pun. Hal ini terjadi jika yang pertama memeriksa kembali palsu.

Kurangnya nilai-nilai

Sebuah fitur menarik dari siklus ini adalah bahwa setiap potongan kode dalam deskripsi siklus anda mungkin tidak.

Berikut adalah contoh dari sebuah siklus yang tidak mengatur nilai awal:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Dalam kasus jika deskripsi siklus for tes ini tidak tersedia, itu menciptakan loop tak terbatas. Berikut adalah contoh dari siklus for yang tidak menentukan validasi, tapi masih siklus ini berakhir bermigrasi dalam tubuh loop dan digunakan last.

▶ Run
#!/usr/bin/perl

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

Dalam deskripsi siklus ketiga fragmen juga dapat hilang:

▶ Run
#!/usr/bin/perl

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

Jika dalam satu lingkaran untuk menghapus semua fragmen, itu akan membuat loop tak terbatas:

#!/usr/bin/perl

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

Visibilitas variabel

Dalam hal ini jika variabel didefinisikan dalam deskripsi lingkaran di luar lingkaran, variabel ini tidak akan tersedia. Dalam kasus kode use strict;, maka seperti banding akan gagal.

▶ 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.

Jika anda perlu untuk menggunakan variabel counter luar loop tubuh, anda harus menemukan itu keterangan siklus:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $i = 0;

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

print $i;

next dan last

Di Perl ada kata kunci khusus yang dapat anda gunakan untuk mempengaruhi eksekusi loop.

Kata kunci next berhenti mengeksekusi saat iterasi:

▶ Run
#!/usr/bin/perl

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

Dan dengan bantuan last pada setiap waktu untuk menyelesaikan siklus:

▶ Run
#!/usr/bin/perl

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

Topik terkait

Artikel lainnya