Perl语言入门(03 流程控制语句)
来源:互联网 发布:减脂训练计划 知乎 编辑:程序博客网 时间:2024/09/21 09:26
由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚。废话不多说直接上干货!!!
———————————————————————————干货分割线—————————————————————————
If语句:若if语句块只有一个表达式,可将if写成如下语句:
表达式 if(判断语句);
If(){...}
elsif(){...}
else{...}
exp:
$a = "abc";$b = "def";if($a == $b){ print "eques";}
$ a和$b中存放的两个值实际上是要测试它们之间是否相等。当P e r l期望数字值的时候,如果使用了非数字字符串,那么这些字符串的计算结果将是0。因此,上面这个i f表达式在P e r l看来就像是: i f( 0 == 0)。这个表达式的计算结果是真,所以运行结果并不是你想要的结果。只要打开警告开关,控制台就会输出相应的警告信息提醒你。如:
如果你想要测试非数字值,你可以使用另一组P e r l运算符,如图:
这些运算符通过从左到右观察每个字符,然后按照A S C I I的顺序对它们进行比较,来确定“大于”和“小于”。这意味着字符串按照升序进行排序,大多数标点符号放在最前面,然后是数字,接着是大写字母,最后是小写字母。例如, 1 5 0 6大于H a p p y,而H a p p y又大于h a p p y。
Last语句:满足条件时能使当前正在运行的最里面的循环块退出。
exp:
while($i < 15){print "$i\n";last if($i == 5); #last类似于break功能$i++;}
输出结果为:
结果依次为:空,1,2,3,4,5。
PS:当$i等于5时退出while循环。可知$i未定义时其值为undef,作为输出结果时为空.作为数字运算时他的值为0.
undef:这是一个特殊的值,意为:未定义,任何未设置的变量都为undef,且在函数运行失败时也返回该值。在if语句测试时undef返回假,进行数学运算时他被视为0;
next语句:使得控制权被重新传递给循环的顶部。
Exp:
for($i = 0;$i<200;$i ++){ next if(not $i % 2); print “An odd number = $i\n”;}
输出从0-98之间的所有偶数。
标号:给循环语句加标号,一般为全部字母大写。
Exp:
OUTER: while($expr){
INNER:while($expr){
Statement;
}
}
Last,redo,next都可以带有标号,作为参数。这样就可以退出特殊的语句块。
Exp:
OUTER:for($i = 0 ;$i < 100;$i ++){ for($j = 0;$j <100;$j ++){ if($i * $j == 140){ prnt “The product of $i and $j is 140”; last OUTER; } } }
这样last语句退出的就是最外层循环了。这个代码只输出他找到的140的第一个因子。
Exit语句:当Perl遇到exit时,程序停止执行,Perl将一个退出状态返回给操作系统。退出状态0意味着一切运行正常。
Exp:
if($response eq ‘quit’){ print “Good bye\n”; exit 0;}
逻辑运算符:
Perl也遵循短路或原则。运算符优先级:
|| > or ,&& > and ,! > not
Perl运算符不仅返回真假,实际上是返回计算得出的最后值。如:5&&7返回7.
- Perl语言入门(03 流程控制语句)
- Perl入门(二)Perl的流程控制
- C语言入门之流程控制语句及运算符号
- C语言 流程控制语句
- C语言-流程控制语句
- 03 流程控制语句
- Perl语言入门(第五版) 读书笔记(五)---其他控制结构、Perl模块
- Perl笔记:Perl语言入门(第六版) - 控制结构、子程序
- 第四章c语言 流程控制语句(一)
- Java语言基础(二)---程序流程控制语句、函数
- 【c语言】流程控制语句(while,do..while)
- GO语言学习三(流程控制语句)
- shell入门之流程控制语句
- JAVA语言的流程控制语句
- C 语言之流程控制语句
- C语言语句及流程控制
- Go语言学习(五)流程控制语句
- Java语言基础-6.流程控制语句
- mysql 忘记root密码(5.7.12版本)
- mysql的外键
- java 接口和抽象类
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- poj1060 大数
- Perl语言入门(03 流程控制语句)
- Android开发环境搭建
- 标题栏透明
- “Are you sure you want to proceed?” message on login
- 十分钟玩转 jQuery+实例大全
- StuQ 技能图谱(全套13张)
- UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
- css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
- 6-19-1 Android应用程序组件:ContentProvider 待整理