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:
- si entonces declaración
- declaraciones si entonces más
- sentencias si-entonces anidadas
- si-entonces-elsif-entonces-otro escalera
- 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
- 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).
- 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
- 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