Perl given-when 语句

Perl given-when 语句

在Perl中,g iven-when 语句是长的if语句的替代品,它将一个变量与多个积分值进行比较。

  • given-when 语句是一个多向分支语句。它提供了一种简单的方法,根据表达式的值将执行分配到代码的不同部分。
  • given 是一个控制语句,它允许一个值来改变对执行的控制。

Perl中的 given-whenC/C++PythonPHP 中的 switch-case 类似 。 就像 switch 语句一样,它也可以用不同的情况来代替多个if语句。

语法

given(expression)
{
    when(value1) {Statement;}
    when(value2) {Statement;}

    default {# Code if no other case matches}
}

given-when 语句还使用了另外两个关键字,即 breakcontinue。 这些关键字可以维持程序的流程,并帮助脱离程序的执行或跳过某个特定值的执行。

break: break关键字用于跳出一个 when 块。在Perl中,没有必要在每个 when 块后面明确地写上break。
continue: 另一方面,如果第一个 when 块是正确的,那么continue将进入下一个 when 块。

Perl  given-when 语句

在一个 给定的when 语句中,一个条件语句不能在多个 when 语句中重复,这是因为Perl只检查该条件的第一次出现,接下来重复的语句将被忽略。另外,默认语句必须放在所有的 when 语句之后,因为编译器会依次检查每个 when 语句的条件匹配情况,如果我们将默认语句放在中间,那么它就会在那里休息一下,并打印默认语句。

例子

#!/usr/bin/perl
  
# Perl program to print respective day
# for the day-code using given-when statement
use 5.010;
  
# Asking the user to provide day-code
print "Enter a day-code between 0-6\n";  
  
# Removing newline using chomp
chomp(my day_code = <>);  
  
# Using given-when statement
given (day_code) 
{  
    when ('0') { print 'Sunday' ;}  
    when ('1') { print 'Monday' ;}  
    when ('2') { print 'Tuesday' ;}  
    when ('3') { print 'Wednesday' ;} 
    when ('4') { print 'Thursday' ;}  
    when ('5') { print 'Friday' ;} 
    when ('6') { print 'Saturday' ;}
    default { print 'Invalid day-code';}  
}  

输入

4

输出

Enter a day-code between 0-6
Thursday

嵌套的给定-当语句

嵌套 给定 语句是指在另一个 给定 语句内的 给定 语句。这可以用来维护用户为特定输出集提供的输入的层次结构。

语法

given(expression)
{
    when(value1) {Statement;}
    when(value2) {given(expression)
                  {
                     when(value3) {Statement;}   
                     when(value4) {Statement;}   
                     when(value5) {Statement;} 
                     default{# Code if no other case matches}
                  }
                 }
    when(value6) {Statement;}

    default {# Code if no other case matches}
}

下面是一个嵌套的 given-when 语句的例子。

#!/usr/bin/perl
  
# Perl program to print respective day
# for the day-code using given-when statement
use 5.010;
  
# Asking the user to provide day-code
print "Enter a day-code between 0-6\n";  
  
# Removing newline using chomp
chomp(my day_code = <>);  
  
# Using given-when statement
given (day_code) 
{  
    when ('0') { print 'Sunday' ;}  
    when ('1') { print "What time of day is it?\n";
                 chomp(my day_time = <>);
                   
                 # Nested given-when statement
                 given(day_time)
                 {
                     when('Morning') {print 'It is Monday Morning'};
                     when('Noon')    {print 'It is Monday noon'};
                     when('Evening') {print 'It is Monday Evening'};
                     default{print'Invalid Input'};
                 }
                }  
    when ('2') { print 'Tuesday' ;}  
    when ('3') { print 'Wednesday' ;} 
    when ('4') { print 'Thursday' ;}  
    when ('5') { print 'Friday' ;} 
    when ('6') { print 'Saturday' ;}
    default { print 'Invalid day-code';}  
}  

输入

1
Morning

输出

Enter a day-code between 0-6
What time of day is it?
It is Monday Morning

输入

3

输出

Enter a day-code between 0-6
Wednesday

在上面的例子中,当输入的日代码不是1时,代码将不会进入嵌套的 给定时间 块,输出将与前面的例子相同,但如果我们给1作为输入,那么它将执行嵌套的 给定时间 块,输出将与前面的例子不同。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程