• 控制结构(1)判断控制


    选择性控制结构

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

  • 相关阅读:
    Visual C#创建和使用ActiveX组件
    ASP.NET2.0 缓存(Cache)技术介绍
    轻松配置Win 2003自带Mail服务器
    如何打印IFRAME中的内容
    FAT32转NTFS、NTFS无损转FAT32
    使用设计模式构建通用数据库访问类
    笑到肚子痛
    夫妻的简单生活
    哈工大学子的一首强诗&哈工大才女的绝顶回诗
    相爱时要做的20件事
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170387.html
Copyright © 2020-2023  润新知