|
珞珈山水BBS →
电脑网络 →
操作系统 →
单文区文章阅读
|
| 单文区文章阅读 [返回] |
|---|
|
发信人: wys0920 (好吃懒做加菲猫), 信区: OS 标 题: 第七课 控制结构(1)-判断控制 发信站: 珞珈山水 ( 2004年08月13日12:29:06 星期五), 站内信件 选择性控制结构 选择性控制结构包括if和unless语句,类似于C语言中的if。 首先介绍一下真和假的定义。在Perl中,这些规则有些难以理解。控制表达式的值为空 串或0时,则表达式为假, 对于其它任何情况,表达式的值都为真。 注意:"00"不是空串或0,值为真。"0.0"也是如此。 指令: if 假如 语法一: if(判别运算式) { 表达式为真时的语句块; } 上个语法在Perl中也可以写成: 表达式为真时的语句块 if (判别运算式); 范例: print"请输入您的分数?\n"; $scorre=<STDIN>; #<STDIN>代表标准输入,会让使用者输入一字符串 chop($score); #将$score最后一个换行字符\n删除掉 if($score>=60){ print"您的分数及格了!\n"; } 也可以写成: print "您的分数及格了!\n" if ($score>=60); 语法二: if(判别运算式一){ 判别式一为真时的语句块; }else{ 判别式一为假时的语句块; } 范例: print"请输入您的分数?\n"; $scorre=<STDIN>; chop($score); if($score>=60) { print"您的分数及格了!\n"; }else{ print"您的分数不及格!\n"; } 语法三: if (判别运算式一) { 判别式一为真时的语句块; }elsif(判别运算式二){ 判别式二为真时的语句块; }elsif(判别运算式三){ 判别式三为真时的语句块; }else{ 所有判别式为假时的语句块; } 范例: print"请输入您的分数?\n"; $scorre=<STDIN>; chop($score); if($score>60) { print"您的分数大于60分!\n"; }elsif ($score<60){ print"您的分数小于60分!\n": }else{ print"您的分数刚好是60分!\n"; } 指令: unless 假如非 unless的含义就是说“如果判别式不为真,就执行...”。 语法一: unless(判别运算式) { 判别式为假时语句块; } 上个语法在Perl中也可以写成:判别式为假时语句块 unless (判别运算式); 范例: print"请输入您的分数?\n"; $scorre=<STDIN>; #<STDIN>代表标准输入,会让使用者输入一字符串 chop($score); #将$score最后一个换行字符\n删除掉 unless($score<60) { print"您的分数及格了!\n"; } 也可以写成: print"您的分数及格了!\n"unless($score<60); 语法二: unless(判别运算式) { 判别式为假时语句块; }else{ 判别式为真时语句块; } 范例: print"请输入您的分数?\n"; $scorre=<STDIN>; chop($score); unless($score<60) { print"您的分数及格了!\n"; }else{ print"您的分数不及格!\n"; } 进阶技巧:&&,||及?:作为控制结构 它们看上去像标点符号,或是表达式的一部分。但在Perl中可作为控制结构。 比如说: if (判别表达式) {为真时语句块}; 也可以写为: 为真时的语句块 if (判别表达式) 但更简单的方式是: 判别式 && 为真时的语句块 为什么呢?&&为逻辑与操作符,其含义为: 若判别式为真,则表达式的值依赖于后面语句块的值。所以为真时的语句块被执行 (用来求值)。 若判别式为假,则整个表达式为假,不用考虑后面语句块的值。所以为假时的语句 块不被执行。 同样道理,unless(this){that}可替换为this||that。 ?:表达式举例:exp1?exp2:exp3表示:如果exp1为真则求exp2的值,否则求exp3的值。 -- 欢迎大家光临奥运会版面,参与奥运竞猜 http://202.113.16.117/upload/file/1092022471garfieldas.jpg ※ 来源:.珞珈山水 http://bbs.whu.edu.cn ◆ FROM: 222.132.243.214 |
| [返回单文区目录] |
|
|