perl语法-2

声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

表示如果非真,即:如果条件表达式不为真。

语法一:

unless(条件表达式) {

条件表达式为假执行的语句块;

}

也可以写成:

条件表达式为假执行的语句块unless (条件表达式);

范例:

#perl0-5.pl

#%为除余操作符

$x=6;

unless($x%2){

print “x是偶数\n”;

}

print “x是偶数\n” unless($x%2);

输出结果为:

x是偶数

x是偶数

语法二:

unless(条件表达式)
{

条件表达式为假时执行的语句块;

}else{

条件表达式为真时执行的语句块;

}

范例:

#perl0-6.pl

#%为除余操作符

$x=9;

unless($x%2){

print “x是偶数\n”;

}

else{

print “x是奇数\n”;

}

输出结果为:

x是奇数

1  

2  

3  

4  

4.1  

4.2  

4.3  

4.3.1  替代if-else结构的三目操作符?:

?: 操作符可以替代if-else结构,语法格式如下:

条件表示式?表达式1:表达式2

表示如果条件表示式为真则求表达式1的值,否则求表达式2的值。

范例:

#perl0-7.pl

#%为除余操作符

$x=9;

$x%2?print "x是奇数\n":print "x是偶数\n";

输出结果为:

x是奇数

4.3.2  替代if结构的&&

&&可替代if结构,语法格式如下:

条件表达式 && 条件表达式为真时执行的语句块

范例:

#perl0-8.pl

#%为除余操作符

$x=8;

$x%2&& print "x是奇数\n";

因为8不是奇数,所以print语句不会执行,无输出结果。

1.  

2.  

3.  

1.  

2.  

4.3.3  替代unless结构的||

||可替代unless结构,语法格式如下:

条件表达式 || 条件表达式为假执行的语句块


#perl0-9.pl

#%为除余操作符

$x=8;

$x%2|| print "x是偶数\n";

因为8是偶数,所以输出结果如下:

x是偶数

  Perl循环控制很丰富,其中某些控制语法在处理列表和数组方面相当实用和高效。

1    

2    

3    

4    

5    

1    

2    

3    

4    

5    

语法一:

while(条件表达式) {

语句块;

}

范例:

#perl0-10.pl

#计算110的连乘结果

$x=1;

$jg=1;

while($x<=10)
{

$jg=$jg*$x;

$x++;

}

print “$jg\n”;

输出结果如下:

3628800

语法二:

语句块while(判别运算式);

范例:

#perl0-11.pl

#计算110的连乘结果

$x=1;

$jg=1;

{

$jg*=$x;

$x++;

} while($x<=10)

print “$jg\n”;

请注意$jg*=$x这种写法,学过C语言的都知道:

$jg*=$x$jg=$jg*$x的结果一样,但编译效率更高。

输出结果如下:

3628800

while相比,do while保证语句块至少执行一次。

语法:

do
{

语句块;

}while(条件表达式)

范例:

#perl0-12.pl

#求和1100

$jg=0;

$x=1;

do{

$jg+=$x;
$
x++;

}while($x<=100);
print "$
jg\n";

输出结果如下:

5050

5.3    until

until 直到...才终止循环

语法:

until(条件表达式)
{

语句块;

}

也可以写成: 语句 until(条件表达);

范例:

#perl0-13.pl

#1开始求和,直到和大于1000终止

$jg=0;

$x=1;

until ($jg >1000)

{

$jg+=$x;

$x++;

}

print "1->$x:";

print "$jg\n";

输出结果如下:

1->46:1035

do until直到...才终止循环

语法:

do{

语句块;

}until (条件表达式);

范例:

#perl0-14.pl

#1开始求和,直到和大于1000终止

$jg=0;

$x=1;

do

{

$jg+=$x;

$x++;

} until ($jg >1000);

print "1->$x:";

print "$jg\n";输出结果如下:

1->46:1035

循环

语法一:

for (初始表达式;条件表达式;循环过程运算式)
{

语句块;

}

范例一:

#perl0-15.pl

#1开始求和,直到和大于1000终止

$jg=0;

$x=1;

for ($jg=0,$x=1; $jg <=1000;$x++)

{

$jg+=$x;

}

print "1->$x:";

print "$jg\n";

输出结果如下:

1->46:1035

语法二:

每次循环依次将数组变量的元素指定给标量

for  标量(数组变量)
{

语句块;

}

范例:

#perl0-16.pl

#从数组中挑出奇数

@myarr=(2,5,7,10,23,33,18);

print"奇数如下:\n";

for $num(@myarr)

{

  $num%2&&print "$num  ";

}

print"\n";

输出结果如下:

奇数如下:

5  7  23  33

语法三:

每次循环依次将数组变量的元素指定给预定义变量$_

for  (数组变量)
{

读取$_,处理数组的相关语句块;

}

范例:

#perl0-17.pl

#从数组中挑出奇数

@myarr=(2,5,7,10,23,33,18);

print"奇数如下:\n";

for (@myarr)

{

  $_%2&&print "$_  ";

}

print"\n";

输出结果如下:

奇数如下:

5  7  23  33

每次循环依次将数组变量的元素指定给标量

语法一:

foreach  标量(数组变量)
{

语句块;

}

如果把$variable变量省略的话,就会将数组@array的元素一一指定给$_这个内定的输出变量.

范例:

#perl0-18.pl

#从数组中挑出奇数

@myarr=(2,5,7,10,23,33,18);

print"奇数如下:\n";

foreach $num(@myarr)

{

  $num%2&&print "$num  ";

}

print"\n";

输出结果如下:

奇数如下:

5  7  23  33

语法二:

每次循环依次将数组变量的元素指定给预定义变量$_

foreach  (数组变量)
{

语句块;

}

范例:

#perl0-19.pl

#从数组中挑出奇数

@myarr=(2,5,7,10,23,33,18);

print"奇数如下:\n";

foreach (@myarr)

{

  $_%2&&print; #使用无参数的print表示输出$_

  print" ";

}

print"\n";

输出结果如下:

奇数如下:

5  7  23  33

5.7   last退出循环

退出循环

语法:

last

范例:

#perl0-20.pl

#1开始累加,直到和大于500为止

$x=1;

$jg=0;

while (1)

{

      $jg+=$x;

$jg>500&&last;#求和>500退出循环

$x++;

 }

print"sum(1:$x)=$jg\n";

输出结果如下:

sum(1:32)=528

5.8    next终止本次循环

终止本次循环,进入下一循环。

语法:

next

范例:

#perl0-21.pl

#求出1-100内的奇数之和

foreach ($x=1,$jg=0;$x<=100;$x++){      

      $x%2||next;#如果是偶数则结束本次循环,不累加,继续下次循环

      $jg+=$x;

      $x++;

 }

print "$jg\n";

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值