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