Toma de decisiones en PL/SQL (if-then, if-then-else, anidado if-then, if-then-elsif-then-else)

Hay situaciones en la vida real en las que necesitamos tomar algunas decisiones y, en base a estas decisiones, decidimos qué debemos hacer a continuación. También surgen situaciones similares en la programación en las que necesitamos tomar algunas decisiones y, en base a estas decisiones, ejecutaremos el siguiente bloque de código.

Las declaraciones de toma de decisiones en los lenguajes de programación deciden la dirección del flujo de ejecución del programa. Las declaraciones de toma de decisiones disponibles en pl/SQL son:

  1. si entonces declaración
  2. declaraciones si entonces más
  3. sentencias si-entonces anidadas
  4. si-entonces-elsif-entonces-otro escalera
  1. si entonces declaración
    si entonces declaración es la declaración de toma de decisiones más simple. 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 then
    -- do something
    end if;
    

    Aquí, la condición después de la evaluación será verdadera o falsa. Si la declaración acepta valores booleanos: si el valor es verdadero, ejecutará el bloque de declaraciones debajo de él; de lo contrario, no.
    if y endif se consideran como un bloque aquí.

    Ejemplo:-

    sql

    declare
    -- declare the values here
      
    begin
      
    if condition then
    dbms_output.put_line('output');
      
    end if;
      
    dbms_output.put_line('output2');
    end;

    sql

    -- pl/sql program to illustrate If statement
    declare
    num1 number:= 10;
    num2 number:= 20;
      
    begin
      
    if num1 > num2 then
    dbms_output.put_line('num1 small');
    end if;
      
    dbms_output.put_line('I am Not in if');
      
    end;

    Como la condición presente en la sentencia if es falsa. Entonces, el bloque debajo de la instrucción if no se ejecuta.
    Producción:

    I am Not in if
    
  2. if – then- else:
    La sentencia if por sí sola nos dice que si una condición es verdadera ejecutará un bloque de sentencias y si la condición es falsa no lo hará. Pero qué pasa si queremos hacer otra cosa si la condición es falsa. Aquí viene la declaración else. Podemos usar la instrucción else con la instrucción if para ejecutar un bloque de código cuando la condición es falsa.
    Sintaxis:-
    if (condition) then
        -- Executes this block if
        -- condition is true
    else 
        -- Executes this block if
        -- condition is false
    

    Ejemplo:-

    sql

    -- pl/sql program to illustrate If else statement
    declare
    num1 number:= 10;
    num2 number:= 20;
      
    begin
      
    if num1 < num2 then
    dbms_output.put_line('i am in if block');
      
    ELSE
    dbms_output.put_line('i am in else Block');
    end if;
      
    dbms_output.put_line('i am not in if or else Block');
    end;

    Producción:-

    i'm in if Block
    i'm not in if and not in else Block
    

    El bloque de código que sigue a la declaración else se ejecuta porque la condición presente en la declaración if es falsa después de llamar a la declaración que no está en el bloque (sin espacios).

  3. si-entonces
    anidado: un si-entonces anidado es una declaración si que es el destino de otra declaración si. Las declaraciones if-then anidadas significan una declaración if dentro de otra declaración if. Sí, PL/SQL nos permite anidar sentencias if dentro de sentencias if-then. es decir, podemos colocar una declaración si entonces dentro de otra declaración si entonces.

    Sintaxis:-

    if (condition1) then
       -- Executes when condition1 is true
       if (condition2) then 
         -- Executes when condition2 is true
       end if; 
    end if;
    

    sql

    -- pl/sql program to illustrate nested If statement
    declare
    num1 number:= 10;
    num2 number:= 20;
    num3 number:= 20;
      
    begin
    if num1 < num2 then
    dbms_output.put_line('num1 small num2');
      
      if num1 < num3 then  
      dbms_output.put_line('num1 small num3 also');
      end if;
      
    end if;
      
    dbms_output.put_line('after end if');
    end;

    Producción:-

    num1 small num2
    num1 small num3 also
    after end if
    
  4. if-then-elsif-then-else ladder
    Aquí, un usuario puede decidir entre múltiples opciones. Las declaraciones if then se ejecutan de arriba hacia abajo. Tan pronto como una de las condiciones que controlan el if es verdadera, se ejecuta la declaración asociada con ese if y se omite el resto de la escalera. Si ninguna de las condiciones es verdadera, entonces se ejecutará la instrucción else final.

    Sintaxis:-

    if (condition) then
        --statement
    elsif (condition) then
        --statement
    .
    .
    else
        --statement
    endif
    

    Diagrama de flujo:-

    Ejemplo:-

    sql

    -- pl/sql program to illustrate if-then-elif-then-else ladder
    declare
    num1 number:= 10;
    num2 number:= 20;
      
    begin
      
    if num1 < num2 then
    dbms_output.put_line('num1 small');
      
    ELSIF num1 = num2 then
    dbms_output.put_line('both equal');
      
    ELSE
    dbms_output.put_line('num2 greater');
    end if;
      
    dbms_output.put_line('after end if');
    end;

    Producción:-

    num1 small
    after end if
    

Publicación traducida automáticamente

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