Perl是一种粘性语言,如果你有其他语言的基础的话,你会发现他的流程控制完全和你所知的一模一样。

简单说一下他们的区别:

  • Perl的elsif在其他语言里头可能表示为else if
  • Perl的last,next在其他语言里头可能叫break和continue
  • 不用找了,Perl中没有switch,其实这用if else也是可以实现的,不是么?
  • Perl可能比你知道的语言里头多了这些:条件控制结构unless、循环控制结构until
  • Perl还有一些特殊的写法

还是详细介绍一下Perl的流程控制吧

条件结构

语法:

if结构

if(条件){执行内容}

if-else结构

if(条件){执行内容}else{执行内容}

if-elsif-else结构

if(条件1){执行内容}elsif(条件2){执行内容}else{执行内容}

unless结构

unless(条件){执行内容}

说明:unless表示除了满足条件的,其他都可以执行

unless-else结构

unless(条件){执行内容}else{执行内容}

循环结构

语法结构:

for循环

for(循环参数初始化;循环终止条件;循环参数累积方式){执行语句}

注意:for循环第一次执行也会进行循环终止条件判断。(你可能知道,但可能有人没注意)

While循环

while(循环终止条件){执行语句}

Until循环

until(循环终止条件){执行语句}

while和until的区别:while当条件返回false时终止循环;until当条件返回true时终止循环;

do-while循环

do{执行语句}while(循环终止条件);

while/until和do-while区别:while/until如果循环终止条件为false,则一次都不会执行;do-while不管条件,至少会执行一次。

foreach循环

foreach $var (@array){$var}

简单说明$var相当于一个容器,存放数组每一个位置存放的数据。等价于for($flag=0;$flag<@array;$flag++){$var = $array[$flag];}

单行条件/循环结构

说明:如果条件结构或循环结构下只包含一行执行内容,可以采用以下写法;虽然条件判断写在最后面,但是会先执行.

if(条件){单行执行语句;}等价于:单行执行语句;if(条件);

unless(条件){单行执行语句;}等价于:单行执行语句;unless(条件);

until(终止条件){单行执行语句;}等价于:单行执行语句;until(终止条件);

while(终止条件){单行执行语句;}等价于:单行执行语句;while(终止条件);

循环控制结构

last;退出当前循环体;

next;停止当前执行内容,进入下一次循环

Perl 有goto label;的语法,这种语法让流程控制十分灵活;缺点:让程序较难管理和维护。还是不要用了。

Perl入门(二)Perl的流程控制的更多相关文章

  1. Excel VBA入门(四)流程控制2-循环控制

    所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务. VBA中的循环控制语句主要有3种:for.while.loop.对于大多数人来说,for的使用频率最高,而我个人也觉得for是最为灵活的, ...

  2. Excel VBA入门(三) 流程控制1-条件选择

    VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① ...

  3. MySQL入门(6)——流程控制

    MySQL入门(6)--流程控制 IF语句 条件判断语句,逻辑与大多数编程语言相同,表示形式如下: IF condition THEN ... [ELSE condition THEN] ... [E ...

  4. golang学习笔记(二):流程控制

    欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识. 这篇文章记录go语言的流程控制和更多类型. 流程控制 for Go 只有一种循环结构:for 循环. 基本的 ...

  5. excel的宏与VBA入门(三)——流程控制

    一.条件控制IF if 逻辑表达式 then 语句块 end if 带else的if语句: If 逻辑表达式1 Then 语句块1 ElseIf 逻辑表达式2 Then 语句块2 ElseIf 逻辑表 ...

  6. SQL编程篇 (二) 定义与流程控制

    分类: sql编程:标准的sql 编程 * 纯sql 在标准的编程中又分为 sqlserver-->T-sql oracle-->pl-sql(扩展) 变量:在使用变量之前先定义 声明变量 ...

  7. 二、Python流程控制练习题

    一.分支结构-if等 练习题: 练习1:英制单位与公制单位互换 练习2:掷骰子决定做什么 练习3:百分制成绩转等级制 练习4:输入三条边长如果能构成三角形就计算周长和面积 练习5:个人所得税计算器 练 ...

  8. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

  9. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

随机推荐

  1. 万字超强图文讲解AQS以及ReentrantLock应用(建议收藏)

    | 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it ...

  2. 自制基于python的DoU log分析脚本

    工作中测试DoU的log需要分析,原先是使用excel,去ctrl c,ctrl v截取数据,整理格式等等.一来,这工作虽然很简单,但是非常耗时,不熟练的人(比如我)一搞搞个半天:二来,不小心还会出现 ...

  3. Java实现 蓝桥杯 算法训练 Torry的困惑(基本型)

    算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题 ...

  4. Java实现 LeetCode 513 找树左下角的值

    513. 找树左下角的值 给定一个二叉树,在树的最后一行找到最左边的值. 示例 1: 输入: 2 / \ 1 3 输出: 1 示例 2: 输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输 ...

  5. Java实现 LeetCode 352 将数据流变为多个不相交区间

    352. 将数据流变为多个不相交区间 给定一个非负整数的数据流输入 a1,a2,-,an,-,将到目前为止看到的数字总结为不相交的区间列表. 例如,假设数据流中的整数为 1,3,7,2,6,-,每次的 ...

  6. Java实现 LeetCode 263 丑数

    263. 丑数 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3 示例 2: 输入: 8 输 ...

  7. java实现纵横火柴棋

    [编程题] 这是一个纵横火柴棒游戏.如图[1.jpg],在一个3x4的方格中,游戏的双方轮流放置火柴棒.其规则是: 1. 不能放置在已经放置火柴棒的地方(即只能在空格中放置). 2. 火柴棒的方向只能 ...

  8. java实现第四届蓝桥杯阶乘位数

    阶乘位数 题目描述 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格 ...

  9. [go设计模式]工厂方法模式

    简单工厂就是生产整个计算器,而工厂方法只生产计算器的一部分: 原有的简单工厂可以生'+' '-' '*' '/' ;但是如果添加新的部件'%',厂房就 需要扩充.修改很可以会影响原来部件的正常生产,这 ...

  10. Python面试进阶问题,__init__和__new__的区别是什么?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天这篇是Python专题的第17篇文章,我们来聊聊Python当中一个新的默认函数__new__. 上一篇当中我们讲了如何使用type函数 ...