推荐答案
在 Perl 中,last、next、redo 和 continue 是用于控制循环流程的关键字。它们的作用如下:
last:立即退出当前循环,类似于其他编程语言中的break。next:跳过当前循环的剩余部分,直接进入下一次循环,类似于其他编程语言中的continue。redo:重新执行当前循环的当前迭代,不进行条件判断或递增操作。continue:在循环体的末尾执行指定的代码块,通常与next结合使用。
本题详细解读
last 关键字
last 用于立即退出当前循环。它通常用于在满足某个条件时提前结束循环。例如:
foreach my $i (1..10) {
if ($i == 5) {
last; # 当 $i 等于 5 时退出循环
}
print "$i\n";
}在这个例子中,当 $i 等于 5 时,last 会立即退出循环,因此只会打印出 1 到 4。
next 关键字
next 用于跳过当前循环的剩余部分,直接进入下一次循环。例如:
foreach my $i (1..10) {
if ($i == 5) {
next; # 当 $i 等于 5 时跳过本次循环
}
print "$i\n";
}在这个例子中,当 $i 等于 5 时,next 会跳过 print 语句,直接进入下一次循环,因此会打印出 1 到 10,但不会打印 5。
redo 关键字
redo 用于重新执行当前循环的当前迭代,不进行条件判断或递增操作。例如:
// www.javascriptcn.com code example
my $i = 1;
while ($i <= 10) {
if ($i == 5) {
$i++;
redo; # 当 $i 等于 5 时重新执行当前迭代
}
print "$i\n";
$i++;
}在这个例子中,当 $i 等于 5 时,redo 会重新执行当前迭代,因此 $i 会递增到 6,然后继续执行循环。
continue 关键字
continue 用于在循环体的末尾执行指定的代码块,通常与 next 结合使用。例如:
foreach my $i (1..10) {
if ($i == 5) {
next; # 当 $i 等于 5 时跳过本次循环
}
print "$i\n";
} continue {
print "Continuing...\n";
}在这个例子中,continue 块中的代码会在每次循环结束时执行,即使 next 跳过了循环体的剩余部分。因此,Continuing... 会在每次循环结束时打印出来。