现在的位置: 首页 > 综合 > 正文

perl学习笔记四—-流程控制

2013年05月19日 ⁄ 综合 ⁄ 共 1179字 ⁄ 字号 评论关闭
 流程控制程序
perl中也有C语言中if,while等流程控制程序,但是细节上还是
有所不同,另外perl中还存在unless和until一些语句。还有就是perl中
是没有switch语句的.
一 if语句
与C语言中不同的有如下几点:
1。 perl中采用elsif而不是C中的else if
2。 perl中的真假情况如下
数字0为假。
空的字符串(“”)和字符串“0”为假。
未定义值undef为假。
其他东西均为真。
3。 特殊的if表达式。。如果在i f语句块中只有一个表达式,那么该表达
式实际上可以放在i f语句的前面。
例如 if() {$a=1};与$a=1 if();是相同的。

二 unless语句
unless语句是与if语句起着相反的作用。
例如 if($a>5)与 unless(!$a>5)是相同的意思.

三 until语句
首先看一个例子
for($a=0;$a<0;$a++) 
     { 
      until($a==3) 
       { print "$a/n" unless($a>5);
        $a++; 
       } 
     } 
until的意思就是直到a=3才执行后面的语句.

四 循环中的控制语句
last----break语句能够使当前正在运行的最里面的循环块退出
while($i<15)
{
last if($i==5);
$i++;
}
或者
for($i=0;$i<50;$i++)
{
 if($i=18)
 {
    last;
 }
 
}

next----continue语句使得控制权被重新传递给循环的顶部,同时下一个
循环的重复运行则开始进行
for($i=0;$<100;$i++)
{
 next if(not $i%2)
 print "even number"

}

redo其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,
redo命令在do循环中不起作用。

五 针对列表(数组)每个元素的循环:foreach
其语法如下:
foreach localvar (listexpr) {
    statement_block;
  }
例:
  foreach $word (@words) {
    if ($word eq "the") {
      print ("found the word 'the'/n")
    }
  }
注:
(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍
恢复该值。
(2)在循环中改变局部变量,相应的数组变量也会改变,如:
  @list = (1, 2, 3, 4, 5);
  foreach $temp (@list) {
    if ($temp == 2) {
      $temp = 20;
    }
  }
此时@list已变成了(1, 20, 3, 4, 5)。
 

【上篇】
【下篇】

抱歉!评论已关闭.