Perl语言学习(四)Perl控制结构

四、Perl控制结构

1、if控制结构

  • 控制结构是逻辑实现的基石

  • 三种基本的控制结构

Perl语言学习(四)Perl控制结构_第1张图片
image.png
  • if结构是程序最基本的控制结构

    • 语法:

      • if(条件) 执行语句;

      • if(条件) { 执行语句一; 执行语句二;}

      • 执行语句 if(条件)

      • if(条件一) {执行语句;} elsif(条件二) {执行语句;} else{......}

    • 书写格式:尽量使用左边这种格式

    Perl语言学习(四)Perl控制结构_第2张图片
    image.png
    • unless结构

      • unless结构是if结构的反义结构,用法同if类似

      • unless在条件为假时,执行相应的语句

      • unless(条件) 执行语句;

2、foreach 控制结构

  • for控制结构

    • 当算法的操作对象是一个数组或散列时,利用控制结构来读取数组或散列中的元素

    • 语法:for(初始化式; 条件; 表达式) { 执行语句;}

    • 执行过程:执行初始化式,判断条件,表达式求值,重复第二步和第三步,直到第二步的表达式为假

      my @array = (1,2,3..50,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和last

      • next:跳至本次循环的结束位置,开始下一次循环

      • last:跳至循环的最后位置,结束循环

  • foreach控制结构

    • for循环结构的一种变体

    • foreach循环逐个遍历列表中的值,依次迭代循环过程

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

    my @array = (1,2,3..50,55,60,43,82..99);
    foreach my $item (@array)
    {
           if($item > 60)
           {
                 printf("$item\n");
           }
           $item = 150;
    }  ​
    printf"wtire's result\n";   ​
    foreach my $item (@array)
    {
           printf("$item\n");
    }
    
    • 默认变量的使用

      • $_会取得perl中的默认变量
    • foreach取得元素并非按照先后顺序,而是随机取的

    • 可以使用sort来对元素进行排序然后取出

      • sort{$a <=> $b} @array; ##按照从小到大进行排序,array都是数字

      • sort{$a cmp $b} @array; ##按照从小到大进行排序,array都是字母

    • next, last来对循环进行特定控制

    • 在perl中,对于for和foreach,一般大多使用foreach

3、其他控制结构

  • while控制结构

    • 语法:while(条件) {执行语句;}

    • 条件返回值为真时,执行语句,否则退出循环

    • 一般有三种方法控制循环:

      • 计数控制:循环执行的次数是预先设定好的,依据所记录的次数对循环进行控制

      • 特殊值控制:通过对某特殊值进行判断,来决定程序是否执行

      • 用户交互式控制:通过显性询问用户的意见来判断是否执行程序

    • 使用last跳出当前循环

  • until控制结构

    • until结构和while结构相反,当条件返回值为假时才执行循环内的代码

    • 语法:until(条件) { 执行语句;}

    • until和continue一起使用,构建完备逻辑

      • 语法:until(条件) {执行语句;} continue {执行语句;}
       until (-e "test.txt")
       {
              printf"begin to sleep\n";
              sleep(1);
       }
       continue
       {
              printf"waiting for update\n";
       }
       ```
      
  • switch控制结构

    • Perl的源码中并不支持switch结构

    • 对条件进行判断,根据选择值进行相应的代码

    • 语法:switch(条件) case 条件值1: 执行语句; case 条件值2: 执行语句; default: 执行语句

你可能感兴趣的:(Perl语言学习(四)Perl控制结构)