选择性控制结构

选择性控制结构包括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的值。

转载于:https://www.cnblogs.com/feihongwuhen/archive/2010/09/07/7170387.html

控制结构(1)-判断控制相关推荐

  1. php程序控制结构,PHP 控制结构

    PHP 控制结构 由 学院君 创建于10个月前, 最后更新于 7个月前 版本号 #1 1922 views 0 likes 0 collects 所谓控制结构也叫流程控制,在计算机程序设计中,典型的流 ...

  2. php有哪些程序结构,PHP常用控制结构

    PHP常用控制结构 不要嘲笑铁树.为了开一次花,它付出了比别的树种更长久的努力. 以下是小编为大家搜索整理了PHP常用控制结构,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 控制 ...

  3. 【Java基础】--第1~6章:基础知识、变量和数据类型、运算符、程序控制结构、数组

    文章目录 Java基础 一.Java概述 Java技术体系平台 Java重要特点 Java运行机制及运行过程 Java核心机制--Java虚拟机(JVM) 编译和运行过程 JDK和JRE 二.基础知识 ...

  4. 星星之火-28:什么是CDMA的远近效应与功率控制?

    1. 什么是功率远近效应与功率控制 移动通信是在运动过程中进行的,移动台之间会出现近处移动台干扰远处移动台的现象,称为远近效应. 对于频分多址与时分多址的系统,远近效应并不是那么明显, 然而码分多址, ...

  5. 22web app实现左右滑动控制菜单

    模仿相册app tidy做个html5的web app,完全不考虑桌面版本,所以ie什么的不要测试,需要模拟器测试. 因为找不到合适的js插件,最后就自己写了代码. //希望有这方面资料的同学,一起交 ...

  6. SCN(控制文件中的scn)

    控制文件中的scn很多,最重要的有3类:数据库SCN.数据文件SCN和Checkpoint progress record中的SCN.数据库SCN和数据文件SCN分别从V$DATABASE和V$DAT ...

  7. stm32 led屏控制卡_全彩LED显示屏出现亮线的时候怎么处理比较好呢?

    全彩LED显示屏相对于液晶拼接屏而言,其出现亮线.屏幕小故障的概率要比液晶拼接屏大很多,但是,一般来说这些小故障很容易处理,所以全彩LED显示屏的拥护者还是众多的.全彩LED显示屏出现亮线的时候怎么处 ...

  8. 开发者说 | 地平线程序员奶爸带你玩转机器人开发平台 —— 第一期 手势控制

    在地平线工作了4年多了,原本是冲着地平线机器人,机器人这三个字来的地平线,结果很长一段时间地平线都没搞机器人,我倒是给孩子买了不少机器人. 比如这个, 手势操控机器人,东西不错,很便宜,但是得带个手套 ...

  9. 里程碑式成果Faster RCNN复现难?我们试了一下 | 附完整代码

    作者 | 已退逼乎 来源 | 知乎 [导读]2019年以来,除各AI 大厂私有网络范围外,MaskRCNN,CascadeRCNN 成为了支撑很多业务得以开展的基础,而以 Faster RCNN 为基 ...

最新文章

  1. java tooltips_一款使用纯javacript编写的轻量级tooltips工具
  2. 用python画竹子_python函数
  3. 虚幻4蓝图快速入门(二)
  4. python小课笔记_python第三课笔记
  5. 【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)
  6. 异常处理:try-catch-finally与throws的区别及使用情况
  7. linux磁盘相关命令
  8. 游标需要手动关闭吗MySQL,【MySQL必知必会】使用游标
  9. Atitit 设计模式与算法,与流程的关系
  10. html页面布局实验原理,Html设计实验报告.doc
  11. XtraBackUp 全量备份
  12. 秋招一个半月流水账+招银网路科技offer
  13. Java实现经纬度格式转化
  14. 《SpringBoot官方文档》_笔记
  15. platform创建说明
  16. Android 发表说说一般用到的界面布局
  17. 菜鸡的2020年腾讯实习笔试
  18. 笔记 GWAS 操作流程2-4:哈温平衡检验
  19. 51-20210316华为海思Hi3516DV300的linux系统编译1(SPI模式)
  20. PowerQuery 导入Excel 内容-PowerQuery 系列文章之五

热门文章

  1. Pixysoft.Framework.Noebe.Socket 开发实录
  2. 遭遇sal.xls.exe
  3. BZOJ1563:[NOI2009]诗人小G(决策单调性DP)
  4. 太相信书的人,格局不会太大
  5. 用iptables自动封连接数较大的IP防止CC***的方法 zt
  6. POWER-BI开发版功能简介
  7. VS2017 Cordova Ionic2 移动开发-环境搭建
  8. map遍历react中img图片路径出错
  9. 解决:Unknown table engine 'InnoDB'
  10. 获取系统昨日最高峰时的AWR报告,get_hight_load_awr