美文网首页js css html
04.Perl -- 控制结构

04.Perl -- 控制结构

作者: QXPLUS | 来源:发表于2022-05-19 09:27 被阅读0次

    if 控制结构

    单条件

    语法:
    if (condition) statement;
    如果condition为真, statement语句执行;否则跳过。

    如果执行语句为多个:

    if (condition) {
      statement1;
      statement2;
      ...
    }
    

    执行语句(单个)也可以写在前面:
    statement if (condition)

    多条件

    if (condition1) {
      statement1;
    }
    elsif (condition2) {
      statement2;
    }
    else{
      statement3;
    }
    

    unless结构

    unless结构是if结构的反义结构

    • 当condition为假,执行statement1; 否则,执行statement2.
    unless (condition) {
      statement1;
    }
    else {
     statement2;
    }
    

    foreach 控制结构

    for 控制结构

    语法:

    for (初始值;条件;表达式){
      执行语句;
    }
    

    一个例子, 找出array中值大于60的元素:

    use strict;
    use warnings;
    
    my @array = (1,2,3..50,55,60,43,32,82..99);
    # 将数组赋值为一个变量,变量得到的是数组元素的个数
    my $length_array = @array;
    for (my $i=0; $i<$length_array; $i++)
    {
        if ($array[$i] > 60)
        {
            printf "item $i, value is $array[$i]\n";
        }
    }
    
    • for循环的跳跃:next
      跳过本次循环

    • for循环的中断:``
      跳到循环的最后位置,此时循环就结束了,相当于其他语言的break

    一个例子, 找出array中第一个值大于60的元素:

    use strict;
    use warnings;
    
    my @array = (1,2,3..50,55,60,43,32,82..99);
    # 将数组赋值为一个变量,变量得到的是数组元素的个数
    my $length_array = @array;
    for (my $i=0; $i<$length_array; $i++)
    {
        if ($array[$i] < 60)
        {
            printf "item $i, value is $array[$i]\n";
            next;
        }
        else
        {
            printf "i is $i, its value is $array[$i], greater than 60\n";
            last;
    }
    

    foreach 控制结构

    foreachfor循环结构的一种变体,
    foreach 循环会逐个遍历列表中的值,并依次迭代执行循环过程。

    语法:

    foreach 变量 (列表)
    {
        执行语句;
    }
    

    一个例子, 找出array中值大于60的元素:

    use strict;
    use warnings;
    
    my @array = (1,2,3..50,55,60,43,32,82..99);
    
    foreach my $item (@array)  # 元素的读取是无序的
    {
        if ($item > 60)
        {
            printf "item  is  $item \n";
        }
    }
    

    默认变量

    $_ : 会取perl中的默认变量值
    一个例子, 找出array中值大于60的元素:

    use strict;
    use warnings;
    
    my @array = (1,2,3..50,55,60,43,32,82..99);
    
    foreach  (@array)  # 元素的读取是无序的
    {
        if ($_ > 60)
        {
            printf "item  is  $_ \n";
        }
    }
    

    说明:

    • foreach 取得元素的顺序是随机的

    • 可以使用sort来对元素进行排序后,再取出
      sort{$a <=> $b}@array; # array都是数字时; array中的元素按照从小到大排列
      sort{$a cmp $b}@array; # array都是字母时; array中的元素按照从小到大排列

    • next last的用法与for中的用法类似

    while 控制结构

    语法:

    while (条件) 执行语句;
    

    或者

    while (条件) 
    {
        执行语句1;
        执行语句2;
        ...
    }
    
    • 可以使用last跳出while循环

    until 控制结构

    until 结构和while 结构 相反, 当条件为假时,才执行循环语句。
    类似于ifunless 的关系

    • until + continue
      当条件为假,执行 执行语句1,执行执行语句2 ; 否则,都不执行。
    until (条件)
    {
        执行语句1;
    }
    continue
    {
        执行语句2;
    }
    

    switch 控制结构

    Perl的源码中并不支持switch

    语法:

    switch (条件)
    case 条件值1: 执行语句1;
    case 条件值2: 执行语句2;
    default: 执行语句(都不满足)
    

    相关文章

      网友评论

        本文标题:04.Perl -- 控制结构

        本文链接:https://www.haomeiwen.com/subject/qfjaurtx.html