given-when
La declaración en Perl es un sustituto de las declaraciones if largas que comparan una variable con varios valores integrales.
- La
given-when
sentencia 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. given
es una declaración de control que permite que un valor cambie el control de ejecución.
given-when
en Perl es similar al switch-case
de C/C++ , Python o PHP . Al igual que la switch
declaració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-when
Las 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 when
bloque. En Perl, no hay necesidad de escribir explícitamente el salto después de cada when
bloque. Ya está definido implícitamente.
continuar: continuar, por otro lado, se mueve al siguiente when
bloque si el primer when
bloque es correcto.
En una given-when
declaración, una declaración condicional no debe repetirse en varias when
declaraciones, 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 when
declaraciones porque el compilador verifica la coincidencia de condiciones con cada when
declaración en orden, y si la ubicamos default
en el medio, tomará un break
lugar 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-when
Declaración anidada
La declaración anidada given-when
se refiere a given-when
declaraciones dentro de otras given-when
declaraciones. 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-when
declaració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-when
bloque anidado y la salida será la misma que en el ejemplo anterior, pero si damos 1 como entrada, entonces se ejecutará. el given-when
bloque anidado y la salida variarán del ejemplo anterior.