perl的循环控制
perl的循环控制方法有如下几种
1.while
和C中的用法一样
|
#!/usr/bin/perl -w use strict; my $a=0; while($a++ < 10) { print "$a "; }
|
结果如下
还有一种,是后置式的
|
#!/usr/bin/perl -w
use strict; my $a=0; print "$a " while($a++ < 10);
|
结果如下
2.until
until的用法和while一样,只是意义刚好相反
|
#!/usr/bin/perl -w
use strict; my $a=0; until($a++ > 10) { print "$a "; }
|
结果如下
同样也有后置式
|
#!/usr/bin/perl -w
use strict; my $a=0; print "$a " until($a++ > 10);
|
结果如下
3.for结构
for的用法和C语言中的用法完全一样
|
#!/usr/bin/perl -w
use strict; my $a=0; for($a=0;$a<10;$a++) { print "$a "; }
|
结果如下:
0 1 2 3 4 5 6 7 8 9
4 foreach结构
foreach主要是用于针对列表(数组)每个元素的循环
|
#!/usr/bin/perl -w
use strict; my @array=(0..10); my $a=0; foreach $a (@array) { print "$a "; }
|
同样的遍历如果用for写的就是这样
|
#!/usr/bin/perl -w
use strict; my @array=(0..10); my $a=0; for($a=0; $a<@array; $a++) { print "$array[$a] "; }
|
两段代码运行的结果都是一样的
0 1 2 3 4 5 6 7 8 9 10
需要注意的是foreach中对$a的操作也会同时修改相应的数组元素
看看这个例子就清楚啦
|
#!/usr/bin/perl -w
use strict; my @array=(0..10); my $a=0; foreach $a (@array) { print "$a "; $a += 10; } print "\n"; print "@array ";
|
结果是这样的
|
0 1 2 3 4 5 6 7 8 9 10
10 11 12 13 14 15 16 17 18 19 20 |
5 do循环
do需要和while或者until配合使用,比如
do{
}while();
或者是
do{
}until();
do结构中的语句一定会先执行一遍,然后才会判断条件
6 last,next,redo
这三种结构是用来打断循环结构的正常运行的,前两种就和c语言中的break,continue一样,后一种是perl特有的
|
#!/usr/bin/perl -w
use strict; my $a=0; for($a=0;$a<10;$a++) { last if($a == 5); print "$a "; } print "\n";
#next
#!/usr/bin/perl -w
use strict; my $a=0; for($a=0;$a<10;$a++) { next if($a == 5); print "$a "; } print "\n";
#redo
#!/usr/bin/perl -w
use strict; my $a=0; for($a=0;$a<10;$a++) { print "$a "; #redo if($a == 8);
}
|
结果如下:
|
0 1 2 3 4
0 1 2 3 4 6 7 8 9
0 1 2 3 4 5 6 7 8 9 |
嘿嘿,你可以把最后一个代码中的redo if($a == 8)加上
看看会发生什么~哈哈,反正我的这个程序是死了
阅读(7627) | 评论(0) | 转发(0) |