Perl 学习笔记(6)
控制程序流 本章中将要学习:语句块;运算符;循环;标号;程序执行后退出Perl 一、if语句 if (expressn) BLOCK if ($r == 5) { ???? print 'The value of $r is equal to 5.'; } 只有当表达式是真的时候,表达式后面的语句块才运行;如果表达式不是真,那么else后面的语句块运行。 $r=<STDIN>;chomp $r; if ($r == 10) { ???? print '$r is 10'; } else { ???? print '$r is something other than 10....'; ???? $r=10; ???? print '$r has been set to 10'; } 请记住,运算符=用于赋值,而==则用于测试一个等式。 $r=10; if ($r==10) { ???? print '$r is 10!'; } elsif ($r==20) { ???? print '$r is 20'; } else { ???? print '$r is neither 10 nor 20'; } ================================================== 如果想测试非数字值,可以使用字母关系运算符 eq?????????? $e eq $t??????? 等于 gt??????????? $e gt $t??????????大于 lt????????????? $e lt $t??????????小于 ge????????????$e ge $t???????? 大于等于 le???????????? $e le $t?????????? 小于等于 ne??????????? $e ne $t?????????? 不等于 ========================================================= 逻辑运算符 &&???????? and?????? $s &&$t???? 当都为真,才是真 ||??????????????or????????? $a || $b????? 当有一个为真,才是真 !?????????? not???????? !$m?????????? 不为真,才为真(求反) if ($x and $y and not $z) { ?????? print "All conditions met.n"; } 运算符|| 和 or 并不完全相同,|| 运行优先级要高于or。也适用于&& /and ========================================================= 二、用while进行循环 当perl遇到while语句时,它就计算该条件。如果条件计算的结果是真,代码就运行。当运行到代码块的结尾时,表达式被重新计算,如果结果仍然是真,代码块重复执行。 $counter=0; while ($counter < 10) { ??????? print "Still counting,$counter"; ??????? $counter++; } ================================================================= 三、使用for循环 for语句是perl循环结构中最复杂和最有用的 for ($a=0;$a<10;$a=$a+2) { ????? print "a is now $an"; } 在上面的代码中,$a设置为0,执行测试表达式$a<10,发现结果为真。循环的本身输出了一条消息,然后递增语句$a=$a+2开始运行,将$a的值递增2. ========================================================= 明细控制 while ($i<10) { ????? last? if? ($i==5); ????? $i++; } last语句能够在$i的值是5时使while循环退出 next语句使得控制权被重新传递给循环的顶部 for ($i=0;$i<100;$i++) { ??????? next? if (not $i %2); ??????? print "An odd number=$in"; } ================================================== 退出perl exit语句是最后的一个流控制工具。当perl遇到exit语句时,程序就停止执行,perl 将一个退出状态返回给操作系统。 if ($user eq 'quit') { ?????? print? "Good byen"; ?????? exit 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |