Perl语言学习(四)Perl控制结构
四、Perl控制结构
1、if控制结构
-
控制结构是逻辑实现的基石
-
三种基本的控制结构

-
if结构是程序最基本的控制结构
-
语法:
-
if(条件) 执行语句;
-
if(条件) { 执行语句一; 执行语句二;}
-
执行语句 if(条件)
-
if(条件一) {执行语句;} elsif(条件二) {执行语句;} else{......}
-
-
书写格式:尽量使用左边这种格式
image.png
-
unless结构
-
unless结构是if结构的反义结构,用法同if类似
-
unless在条件为假时,执行相应的语句
-
unless(条件) 执行语句;
-
-
2、foreach 控制结构
-
for控制结构
-
当算法的操作对象是一个数组或散列时,利用控制结构来读取数组或散列中的元素
-
语法:for(初始化式; 条件; 表达式) { 执行语句;}
-
执行过程:执行初始化式,判断条件,表达式求值,重复第二步和第三步,直到第二步的表达式为假
my @array = (1,2,3..50,60,43,32,82..99); my $length_array = @array; for(my $i=0;$i<$length_array;$i++) { if($array[$i]>60) { printf"item $i, value is:$array[$i]\n"; } }
-
for循环中断、跳出的控制,使用next和last
-
next:跳至本次循环的结束位置,开始下一次循环
-
last:跳至循环的最后位置,结束循环
-
-
-
foreach控制结构
-
for循环结构的一种变体
-
foreach循环逐个遍历列表中的值,依次迭代循环过程
-
语法:foreach 变量(列表){ 执行语句; }
my @array = (1,2,3..50,55,60,43,82..99); foreach my $item (@array) { if($item > 60) { printf("$item\n"); } $item = 150; } printf"wtire's result\n"; foreach my $item (@array) { printf("$item\n"); }
-
默认变量的使用
- $_会取得perl中的默认变量
-
foreach取得元素并非按照先后顺序,而是随机取的
-
可以使用sort来对元素进行排序然后取出
-
sort{$a <=> $b} @array; ##按照从小到大进行排序,array都是数字
-
sort{$a cmp $b} @array; ##按照从小到大进行排序,array都是字母
-
-
next, last来对循环进行特定控制
-
在perl中,对于for和foreach,一般大多使用foreach
-
3、其他控制结构
-
while控制结构
-
语法:while(条件) {执行语句;}
-
条件返回值为真时,执行语句,否则退出循环
-
一般有三种方法控制循环:
-
计数控制:循环执行的次数是预先设定好的,依据所记录的次数对循环进行控制
-
特殊值控制:通过对某特殊值进行判断,来决定程序是否执行
-
用户交互式控制:通过显性询问用户的意见来判断是否执行程序
-
-
使用last跳出当前循环
-
-
until控制结构
-
until结构和while结构相反,当条件返回值为假时才执行循环内的代码
-
语法:until(条件) { 执行语句;}
-
until和continue一起使用,构建完备逻辑
- 语法:until(条件) {执行语句;} continue {执行语句;}
until (-e "test.txt") { printf"begin to sleep\n"; sleep(1); } continue { printf"waiting for update\n"; } ```
-
-
switch控制结构
-
Perl的源码中并不支持switch结构
-
对条件进行判断,根据选择值进行相应的代码
-
语法:switch(条件) case 条件值1: 执行语句; case 条件值2: 执行语句; default: 执行语句
-