Chu kỳ for trong Perl

Perl ngôn ngữ có rất nhiều cách để tạo ra một vòng. Một trong những cách này được sử dụng từ khóa for.

Đây là một ví dụ:

▶ Run
#!/usr/bin/perl

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

Chương trình hiển thị ba đường dây với con số:

0
1
2

Làm thế nào để chu kỳ for

Chu kỳ for trong Perl ngôn ngữ rất tương tự, chu kỳ fortiếng C lập trình.

Sau khi for trong khung 3 là một đoạn mã:

  • ban đầu có giá trị
  • kiểm tra
  • thay đổi

Đầu tiên, chạy đầu tiên đoạn mã. Sau đó kiểm tra cho một đúng hay sai trong lần thứ hai đoạn mã. Nếu xác nhận trở thành sự thật nó thực hiện những vòng lặp cơ thể nếu các thử nghiệm trở lại sai, sau đó vòng chấm dứt. Nếu bạn chạy cơ thể của các vòng, sau khi thực hiện mã trong vòng cơ thể thực hiện mã trong các mảnh thứ ba, sau đó kiểm tra được thực hiện một lần nữa và tất cả mọi thứ đi theo đã được mô tả thuật toán.

Nó có thể tình trạng cơ thể của lặp sẽ không được thực hiện ngay cả một lần. Điều này xảy ra nếu kiểm tra đầu tiên trở về sai.

Thiếu giá trị

Một điểm thú vị của chu kỳ là bất kỳ đoạn mã trong các mô tả của chu kỳ bạn có thể không được.

Đây là một ví dụ về một chu kỳ, mà không đặt giá đầu tiên:

▶ Run
#!/usr/bin/perl

my $i = 0;

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

Trong trường hợp nếu các mô tả của chu kỳ for bài kiểm tra không có sẵn, nó tạo ra một vòng lặp vô hạn. Đây là một ví dụ của chu kỳ for trong đó không xác định xác nhận, nhưng vẫn chu kỳ này kết thúc di chuyển trong cơ thể của các vòng và được sử dụng last.

▶ Run
#!/usr/bin/perl

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

Trong các mô tả của chu kỳ thứ ba mảnh cũng có thể bị mất tích:

▶ Run
#!/usr/bin/perl

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

Nếu trong một vòng để xóa tất cả các mảnh vỡ, nó sẽ tạo ra vô vòng:

#!/usr/bin/perl

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

Tầm nhìn của một biến

Trong trường hợp đó, nếu biến được xác định trong các mô tả của các vòng ngoài vòng, biến này sẽ không có sẵn. Trong trường hợp mã là use strict;, sau đó như một lời kêu gọi sẽ thất bại.

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

Nếu bạn muốn sử dụng một biến phản bên ngoài vòng lặp cơ thể, bạn phải tìm ra nó mô tả của chu kỳ:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $i = 0;

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

print $i;

nextlast

Trong Perl đó là từ khóa đặc biệt mà các bạn có thể sử dụng để ảnh hưởng đến việc thực hiện các vòng.

Từ khóa next điểm dừng thực hiện giờ lặp đi lặp lại:

▶ Run
#!/usr/bin/perl

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

Và với sự giúp đỡ của last bất cứ lúc nào để hoàn thành chu kỳ:

▶ Run
#!/usr/bin/perl

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

Chủ đề liên quan

Các bài viết khác