perl学习笔记四----流程控制
流程控制程序perl中也有C语言中if,while等流程控制程序,但是细节上还是有所不同,另外perl中还存在unless和until一些语句。还有就是perl中是没有switch语句的.一?if语句与C语言中不同的有如下几点:1。?perl中采用elsif而不是C中的else?if2。?perl中的真假情况如下数字0为假。空的字符串(“”)和字符串“0”为假。未定义值undef为假。其他东西均为真。3。?特殊的if表达式。。如果在i?f语句块中只有一个表达式,那么该表达式实际上可以放在i?f语句的前面。例如?if()?{$a=1};与$a=1?if();是相同的。二?unless语句unless语句是与if语句起着相反的作用。例如?if($a>5)与 unless(!$a>5)是相同的意思.三?until语句首先看一个例子for($a=0;$a<0;$a++)? {? until($a==3)? {?print?"$a/n"?unless($a>5); $a++;? }? }?until的意思就是直到a=3才执行后面的语句.四?循环中的控制语句last----break语句能够使当前正在运行的最里面的循环块退出while($i<15){last?if($i==5);$i++;}或者for($i=0;$i<50;$i++){?if($i=18)?{????last;?}?}next----continue语句使得控制权被重新传递给循环的顶部,同时下一个循环的重复运行则开始进行for($i=0;$<100;$i++){?next?if(not?$i%2)?print?"even?number"}redo其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。五?针对列表(数组)每个元素的循环:foreach其语法如下:foreach?localvar?(listexpr)?{????statement_block;??}例:??foreach?$word?(@words)?{????if?($word?eq?"the")?{??????print?("found?the?word?'the'/n");?????}??}注:(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。(2)在循环中改变局部变量,相应的数组变量也会改变,如:??@list?=?(1,?2,?3,?4,?5);??foreach?$temp?(@list)?{????if?($temp?==?2)?{??????$temp?=?20;????}??}此时@list已变成了(1,?20,?5) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |