1. last 就是结束循环,跳到循环外头来。上例中,如果用户不输入4,则会一直让用户输入,直到输入4,循环结束。
2. next 结束本次循环,不管下面还有没有语句,都会直接进行下次循环。运行结果是
1
2
3
4
end this loop!
6
7
8
9
10
上例中,当$n 等于5时,就会直接结束该次循环,不再执行next下面的语句。
3. redo 出现redo时,会跳到本次循环开始位置,重新执行本次循环,请注意,如果这里的逻辑判断不当会造成死循环!redo和 next最大的区别就是,前者会重新执行本次迭代,后者会结束本次循环进入下一次迭代。
- #! /usr/bin/perl
- while (1) {
- print "Please input a number:";
- chomp (my $n = );
- if ( $n == 4 ) {
- print "Rright!\n";
- last;
- } else {
- print "error!\n";
- }
- }
2. next 结束本次循环,不管下面还有没有语句,都会直接进行下次循环。
- #! /usr/bin/perl
- for $n (1..10) {
- if ( $n == 5 ) {
- print "end this loop!\n";
- next;
- print "not print this line\n";
- }
- print "$n\n";
- }
1
2
3
4
end this loop!
6
7
8
9
10
上例中,当$n 等于5时,就会直接结束该次循环,不再执行next下面的语句。
3. redo 出现redo时,会跳到本次循环开始位置,重新执行本次循环,请注意,如果这里的逻辑判断不当会造成死循环!
- #! /usr/bin/perl
- for (my $i = 1; $i <10; $i++) {
- print "Type the number $i:";
- chomp (my $n = );
- if ($n ne $i) {
- print "sorry, not right, retype!\n";
- redo;
- }
- }
编辑回复