perl学习笔记—条件和循环(一)

perl笔记之条件和循环(一)

1 if语句

  • 第一种if语句
if(expression)  #如果expression为真,则执行block中的语句
{
   block;
}

如果block中只有一条语句,那么if语句还可以写成:

expression_2  if(expression_1);
  • 第二种if语句
if(expression)    #如果expression为真,则执行block_1
{
   block_1;
}
else                     #如果为假,则执行block_2
{
   block_2;
}
  • 第三种if语句
if(expression_1)
{
   block_1;               #如果expression_1为真,则执行block_1
}
elsif(expression_2) 
{
   block_2;               #否则判断expression_2,若真则执行block_2,否则往下执行
}
...
else 
{
   block_n;               #如果上面的elsif种的条件均不满足,则执行block_n
}

例1

my $num = 12;
if($num >= 0)
{
    print "$num\n";               #这里$num的值大于1,条件为真,执行print语句
}  
执行结果:
12

例2

open(FL,"DATA") || die"$!\n";   #打开文件句柄
my $num1 = 0;  #申明两个变量
my $num2 = 0;
my $line;   #声明$line变量用于保存从句柄读取的数据
while($line = <FL>)  #读数据
{
    if($line =~ /love/)
    {
        $num1 += 1;
     }                                   #如果匹配到love, $num1加1,否则$num2加1
    else
    {
        $num2 += 1;                    
    }
}
close(FL);
print "文件中有$num1个love";#打印
print "文件中有$num2个不是love";
__DATA__
love 
love
love
love
love
fascinate
执行结果:
文件中有5个love
文件中有1个不是love

例3

my $num = <stdin>;
if($num < 18)  print"too young too simple sometimes naive!\n";
elsif($num > 35) print "you are too old , party is not for you\n";
else print "ok, let's go party\n";
执行结果:
20
ok, let's go party
10
too young too simple sometimes naive!
40
you are too old , party is not for you

2 unless语句
如果想要if条件为假的时候执行block,则需要用到感叹号!。

if(!expression)
{
   block;
}

上面的程序不方便理解,所以产生了unless,意思就是除非,除非条件是假,否则就不执行block,这样使程序可以更灵活。

unless(expression)
{
   block;
}

例4

while (my $line = <stdin>){           #从控制台读取输入到$line
   unless($line == 2)                      #只要输入的数据不是2,就打印wrong number;
   {
       print "wrong number";
   }
}
执行结果:
3
wrong number

信息:
Jasonchild2017
其他:
1
225

Michael
+1

评论 :