推荐答案
在 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
用于重新执行当前循环的当前迭代,不进行条件判断或递增操作。例如:
-- -------------------- ---- ------- -- -- - -- ----- --- -- --- - -- --- -- -- - ----- ----- - - -- -- - --------- - ----- ------- ----- -
在这个例子中,当 $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...
会在每次循环结束时打印出来。