perl | dado-cuándo Declaración

given-whenLa declaración en Perl es un sustituto de las declaraciones if largas que comparan una variable con varios valores integrales.

  • La given-whensentencia es una sentencia de bifurcación multivía. Proporciona una forma sencilla de enviar la ejecución a diferentes partes del código en función del valor de la expresión.
  • givenes una declaración de control que permite que un valor cambie el control de ejecución.

given-whenen Perl es similar al switch-casede C/C++ , Python o PHP . Al igual que la switchdeclaración, también sustituye varias declaraciones if con diferentes casos.

Sintaxis:

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

    default {# Code if no other case matches}
}

given-whenLas declaraciones también usan otras dos palabras clave junto con él, a saber, romper y continuar . Estas palabras clave mantienen el flujo del programa y ayudan a salir de la ejecución del programa oa omitir la ejecución en un valor particular.

break: la palabra clave break se utiliza para salir de un whenbloque. En Perl, no hay necesidad de escribir explícitamente el salto después de cada whenbloque. Ya está definido implícitamente.
continuar: continuar, por otro lado, se mueve al siguiente whenbloque si el primer whenbloque es correcto.

En una given-whendeclaración, una declaración condicional no debe repetirse en varias whendeclaraciones, esto se debe a que Perl comprueba solo la primera aparición de esa condición y se ignorarán las siguientes declaraciones repetidas. Además, se debe colocar una declaración predeterminada después de todas las whendeclaraciones porque el compilador verifica la coincidencia de condiciones con cada whendeclaración en orden, y si la ubicamos defaulten el medio, tomará un breaklugar e imprimirá la declaración predeterminada.

Ejemplo:

#!/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';}  
}  

Aporte:

4

Producción:

Enter a day-code between 0-6
Thursday

given-whenDeclaración anidada

La declaración anidada given-whense refiere a given-whendeclaraciones dentro de otras given-whendeclaraciones. Esto se puede usar para mantener una jerarquía de entradas proporcionadas por el usuario para un conjunto de salida específico.

Sintaxis:

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}
}

El siguiente es un ejemplo de given-whendeclaración anidada:

#!/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';}  
}  

Aporte:

1
Morning

Producción:

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

Aporte:

3

Producción:

Enter a day-code between 0-6
Wednesday

En el ejemplo anterior, cuando el código de día de entrada es cualquier cosa menos 1, el código no entrará en el given-whenbloque anidado y la salida será la misma que en el ejemplo anterior, pero si damos 1 como entrada, entonces se ejecutará. el given-whenbloque anidado y la salida variarán del ejemplo anterior.

Publicación traducida automáticamente

Artículo escrito por Abhinav96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *