perl | Toma de decisiones (if, if-else, Nested–if, if-elsif ladder, less, less-else, less-elsif)

La toma de decisiones en la programación es similar a la toma de decisiones en la vida real. En programación, un determinado bloque de código debe ejecutarse cuando se cumple alguna condición. Un lenguaje de programación utiliza declaraciones de control para controlar el flujo de ejecución del programa en función de ciertas condiciones. Estos se utilizan para hacer que el flujo de ejecución avance y se bifurque en función de los cambios en el estado de un programa.
 

Declaraciones de toma de decisiones en Perl:

si declaración

La declaración if es la misma que en otros lenguajes de programación. Se utiliza para realizar tareas básicas basadas en condiciones. Se utiliza para decidir si una determinada instrucción o bloque de instrucciones se ejecutará o no, es decir, si una determinada condición es verdadera, entonces se ejecutará un bloque de instrucciones; de lo contrario, no se ejecutará.
Sintaxis:

if(condition)
{    
     # code to be executed    
}  

Nota: si los corchetes {} no se usan con declaraciones if, entonces habrá un error de tiempo de compilación. Por lo tanto, debe usar los corchetes {} con la declaración if.
Diagrama de flujo:
 

Ejemplo : 

Perl

# Perl program to illustrate if statement
 
$a = 10;
 
# if condition to check
# for even number
if($a % 2 == 0 )
{
    printf "Even Number";
}

Producción : 

Even Number

si – otra declaración

La declaración if evalúa el código si la condición es verdadera, pero qué pasa si la condición no es verdadera, aquí viene la declaración else. Le dice al código qué hacer cuando la condición if es falsa.
Sintaxis:

if(condition)
{  
      # code if condition is true  
}
else
{  
      # code if condition is false  
}  

Diagrama de flujo:
 

Ejemplo : 

Perl

# Perl program to illustrate
# if - else statement
 
$a = 21;
 
# if condition to check
# for even number
if($a % 2 == 0 )
{
    printf "Even Number";
}
else
{  
    printf "Odd Number\n";
}

Producción : 

Odd Number

Anidado – declaración if

La declaración if dentro de una declaración if se conoce como if anidada. La declaración if en este caso es el destino de otra declaración if o else. Cuando más de una condición debe ser verdadera y una de ellas es la subcondición de la condición principal, se puede usar anidado si.
Sintaxis: 

if (condition1) 
{
   # Executes when condition1 is true

   if (condition2) 
   {
      # Executes when condition2 is true
   }
}

Diagrama de flujo: 
 

Ejemplo : 

Perl

# Perl program to illustrate
# Nested if statement
 
$a = 10;
   
if($a % 2 ==0)
{
     # Nested - if statement
     # Will only be executed
     # if above if statement
     # is true
    if($a % 5 == 0)
    { 
         printf "Number is divisible by 2 and 5\n"; 
     }
}

Producción : 

Number is divisible by 2 and 5

If – elsif – else declaración de escalera

Aquí, un usuario puede decidir entre múltiples opciones. Las declaraciones if se ejecutan de arriba hacia abajo. Tan pronto como una de las condiciones que controlan el if es verdadera, la declaración asociada con eso se ejecuta y el resto de la escalera se omite. Si ninguna de las condiciones es verdadera, entonces se ejecutará la instrucción else final.
Sintaxis: 

if(condition1)
{  
           # code to be executed if condition1 is true  
}
elsif(condition2)
{  
           # code to be executed if condition2 is true  
}  
elsif(condition3)
{  
           # code to be executed if condition3 is true  
}  
 ... 
else
{
           # code to be executed if all the conditions are false  
}  

Diagrama de flujo: 
 

if-else-if

si-otro-si

Ejemplo :

Perl

# Perl program to illustrate
# if - elseif ladder statement
 
$i = 20; 
 
if($i == 10)
{
    printf "i is 10\n"; 
}
 
elsif($i == 15)
{
    printf "i is 15\n";
}
 
elsif($i == 20)
{
    printf "i is 20\n";
}
 
else
{
    printf "i is not present\n";
}

Producción : 

i is 20

a menos que Declaración

En este caso, si la condición es falsa, las declaraciones se ejecutarán. El número 0, la string vacía «», el carácter ‘0’, la lista vacía() y undef son todos falsos en un contexto booleano y todos los demás valores son verdaderos.
Sintaxis:

unless(boolean_expression) 
{
   # will execute if the given condition is false
}

Diagrama de flujo: 

Ejemplo : 

Perl

# Perl program to illustrate
# unless statement
 
$a = 10;
 
unless($a != 10)
{
 
    # if condition is false then
    # print the following
    printf "a is not equal to 10\n";
}

Producción : 

a is not equal to 10

A menos que declaración

A menos que la declaración pueda ir seguida de una declaración else opcional, que se ejecuta cuando la expresión booleana es verdadera.
Sintaxis:

unless(boolean_expression)
{
      # execute if the given condition is false
}
 
else 
{
      # execute if the given condition is true
}

Diagrama de flujo: 
 

Ejemplo : 

Perl

# Perl program to illustrate
# unless - else statement
 
$a = 10;
 
unless($a == 10)
{
 
    # if condition is false then
    # print the following
    printf "a is not equal to 10\n";
}
 
else
{
 
    # if condition is true then
    # print the following
    printf "a is equal to 10\n";
}

Producción :  

a is equal to 10

A menos que – declaración elsif

A menos que la declaración puede ir seguida de una declaración opcional elsif…else, que es muy útil para probar las diversas condiciones usando una declaración única a menos…elsif.
Puntos para recordar : 

  • Unless declaración puede tener de cero a muchos elsif y todo eso debe venir antes que el else.
  • A menos que la declaración pueda tener cero o la de otra persona y debe ir después de cualquier elsif.
  • Una vez que un elsif tiene éxito, no se probará ninguno de los restantes elsif o else.

Sintaxis:

unless(boolean_expression 1) 
{
     # Executes when the boolean expression 1 is false
} 
elsif( boolean_expression 2)
{
     # Executes when the boolean expression 2 is true
}
else 
{
     # Executes when the none of the above condition is met
}

Diagrama de flujo:
 

Ejemplo : 

Perl

# Perl program to illustrate
# unless - elsif statement
$a = 50;
 
unless($a  ==  60)
{
 
   # if condition is false
   printf "a is not equal to 60\n";
}
elsif($a ==  60)
{  
    
   # if condition is true
   printf "a is equal to 60\n";
}
else
{ 
 
   # if none of the condition matches
   printf "The value of a is $a\n";
}
Producción

a is not equal to 60

Producción : 

a is not equal to 60

Publicación traducida automáticamente

Artículo escrito por him0000 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 *