-5

以下哪项不能在条件语句中使用?

同时,如果-else,直到,如果-elsif-else

或者答案很简单这些都不是?

4

2 回答 2

3

条件语句的 BLOCK 可以使用任意代码。

if (f()) {
   while (g()) {
      h();
   }
}

您甚至可以在条件表达式中使用任意代码do

if (do {
      my $rv;
      while (!$rv && f()) {
         $rv ||= g();
      }
      $rv
}) {
   h();
}
于 2013-10-21T21:24:55.460 回答
2

在条件语句的 BLOCK 中使用任何类型的语句都没有任何限制,所以答案是它们都可以使用。

  1. 例如:

    use warnings;
    use strict;
    local $\="\n";
    my $count=10;
    if ($count) {
        while ($count!=0) {
            print $count--; #will print 10, 9, 8, ..., 1
        }
    }
    
  2. if-else示例:

    use warnings;
    use strict;
    my $count=10;
    if ($count) {
        if ($count>5) {
            print 'greater than 5';
        }
        else {
            print 'lower or equal to 5';
        }
    }
    
  3. 直到示例:

    use warnings;
    use strict;
    local $\="\n";
    my $count=10;
    if ($count) {
        until ($count==0) {
            print $count--; #will print 10, 9, 8, ..., 1
        }
    }
    
  4. if-elsif-else示例:

    use warnings;
    use strict;
    my $count=10;
    if ($count) {
        if ($count>5) {
            print 'greater than 5';
        }
        elsif ($count==5) {
            print 'equal to 5';
        }
        else {
            print 'lower than 5';
        }
    }
    
于 2013-10-21T22:01:49.553 回答