perl语言的条件判断及循环

基本的if语句能够判断小括号内的表达式取值,如果值为true,则执行其后跟随的表达式。

if语句    if ( 表达式 ) {

          语句;

      }

EXAMPLE 
if ( $a == $b ){ print "$a is equal to $b"; }

if/else语句  if/else实现了双向判断。如果if后面表达式条件为true,则执行其后的语句 ;否

则执行else后面的语句。

      if ( 表达式 ) {

语句;

} else {

语句;

扫描二维码关注公众号,回复: 379860 查看本文章

}

EXAMPLE 
$coin_toss = int (rand(2 )) + 1; # Generate a random
# number between 1 and 2
if( $coin_toss == 1 ) {
print "You tossed HEAD\n";
}
else {
print "You tossed TAIL\n";
}

 if/elsif语句  if/elsif/else提供了多路分支选择功能。如果if后面的表达式值不是true,则会依

次判断其后每个elsif的条件,直到其中某个条件值为true;如果没有一个为true

的话,则执行最后的else语句。

      if ( 表达式 ) {

        语句;

      elsif(表达式){

          语句;

      } elsif(表达式){

         语句;

      else{

              语句;

      }

EXAMPLE 
#  1 is Monday, 7 Sunday
$day_of_week = int(rand(7)) + 1;
print "Today is: $day_of_week\n";
if ( $day_of_week >=1 && $day_of_week <=4 ) {
print "Business hours are from 9 am to 9 pm\n";
}
elsif ( $day_of_week == 5) {
print "Business hours are from 9 am to 6 pm\n";
}
else {
print "We are closed on weekends\n";
}

 和C/C++类似,Perl 也为if/else语法结构提供了相应的简化模式,该模式拥有两个运算符和三

个操作数(因此又称为三元运算符)。如果条件值为true,则执行紧跟在问号后面的语句;如果是

false,则执行冒号后面的语句。其格式为:

(条件) ? 条件为true时执行的语句 : 条件为false时执行的语句

EXAMPLE
$coin_toss = int (rand(2 )) + 1; # Generate a random number
# between 1 and 2
print ($coin_toss == 1 ? "You tossed HEAD\n" : "You tossed TAIL\n");

 循环结构能够指定一段重复执行多次的代码。Perl 支持多种不同类型的循环:while循环、dowhile循环、for循环以及foreach循环。

while/until 循环  

while循环:

while后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表

达式取值为true时,便继续执行循环内容。其语法结构为:

while(条件表达式){

代码段A

}

EXAMPLE 
$count=0; # Initial value
while ($count < 10 ){ # Test
print $n;
$count++; # Increment value
}

 until 循环:

until 后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表

达式取值为false时,继续执行循环内容。其语法结构为:

until(条件表达式){

代码段A

}

EXAMPLE 

$count=0; # Initial value

until ($count == 10 ){ # Test

print $n;

$count++; # Increment value

}

do-while循环    do-while循环类似于while循环,所不同的是它是在循环体末尾检查循环表达式的,而不是在开头检查。这就保证了循环体至少能执行一次。

其代码结构为:

  do{

  代码段A

  }while(表达式);

EXAMPLE 
$count=0; # Initial value
do{
print "$n ";
$count++; # Increment value
while ($count < 10 );# Test
}

for循环      for循环需要判断三个条件表达式的取值,各表达式之间以分号隔开。第一个表达

式负责初始化变量,在整个循环过程中只调用一次。第二个表达式负责判断条件值

是否为true,如果是true的话便执行循环体;否则就退出循环。当循环体执行完毕

后,控制权便转移到第三个表达式,由它负责更新待检测变量的值。然后,再由第

二个表达式进行下一次判断,如此反复。其代码结构如下所示:

for(初始化鍬量;条件表达式;自加/自减){代码段

}

EXAMPLE 
for( $count = 0; $count < 10; $count = $count + 1 ){
print "$count\n";
}

foreach循环    foreach循环仅用于逐个遍历列表(list)内容。

foreach$列表项(@列表){
print$列表项,"\n";
}
EXAMPLE 
@dessert = ( "ice cream", "cake", "pudding", "fruit");
foreach $choice (@dessert){
# Iterates through each element of the array
echo "Dessert choice is: $choice\n";
}

循环控制       last 语句可用于从循环体中跳出一个循环。next 语句可用于跳过当前这次循

环的剩余内容,直接从头开始下一轮循环。

EXAMPLE 
$n=0;
while( $n < 10 ){
print $n;
if ($n == 3){
last;# Break out of loop
}
$n++;
}
print "Out of the loop.<br>";
EXAMPLE
for($n=0; $n<10; $n++){
if ($n == 3){
next;# Start at top of loop;
# skip remaining statements in block
}
echo "\$n = $n<br>";
}
print "Out of the loop.<br>";

猜你喜欢

转载自eileenlml.iteye.com/blog/2378246
今日推荐