欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

perl语法-2

程序员文章站 2022-04-29 16:23:07
...

声明:本神奇的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";

 

 

 

 

 

 

相关标签: Perl