En algunas oportunidades vamos a necesitar que nuestros programas tomen decisiones y ejecuten o no una sección del código según condiciones que previamente debemos establecer.
Tenemos estas formas de establecer las condiciones:
IF - THEN
Vamos a evaluar si el estudiante obtiene una calificación mayor o igual ( >= ) que 50 para mostrar un mensaje por pantalla indicando que está aprobado, prueba cambiar el valor de la variable lv_calificacion para que veas que resultado dará :
DECLARE lv_calificacion NUMBER(3) := 80; BEGIN IF lv_calificacion >= 50 THEN DBMS_OUTPUT.PUT_LINE ('Aprobó la asignatura'); END IF; END;
Resultado:
Aprobó la asignatura
Statement processed.
IF - THEN – ELSE
En esta oportunidad evaluaremos si la calificación es menor ( < ) que 50 dará un mensaje de reprobado, por el contrario dará un mensaje de aprobado, prueba cambiar el valor de la variable lv_calificacion para que veas que resultado te dará :
lv_calificacion NUMBER(3) := 100;
BEGIN
IF lv_calificacion < 50 THEN
DBMS_OUTPUT.PUT_LINE('Reprobó la asignatura');
ELSE
DBMS_OUTPUT.PUT_LINE('Aprobó la asignatura');
END IF;
END;
Resultado
Aprobó la asignatura
Statement processed.
IF - THEN - ELSIF - ELSE
Incrementaremos la complejidad de las condiciones añadiendo una más para mostrar otro mensaje, recuerda cambiar el valor de la variable calificación para que obtengas diferentes mensajes en pantalla
- Si la nota es menor que 50 indicará reprobado
- Si la nota está comprendida entre 50 y 64 ( ambos valores incluidos) indicará que la nota es aprobada de forma mediocre
- Si la nota está comprendida entre 65 y 75 ( ambos valores incluidos) indicará que la nota es aprobada pero deficiente
- Si la nota es mayor que 75 ( 75 no se incluye) indicará que la nota es buena.
- Si la nota es mayor que 100 ( 100 no se incluye) indicará que existe un error y la nota no es válida
lv_calificacion NUMBER(3) := 50;
BEGIN
-- condición de reprobado
IF lv_calificacion < 50 THEN
DBMS_OUTPUT.PUT_LINE('Reprobó la asignatura');
-- condición de mediocre
ELSIF (lv_calificacion >= 50) AND (lv_calificacion <= 64) THEN
DBMS_OUTPUT.PUT_LINE('Aprobó la asignatura de forma mediocre');
-- condición de deficiente
ELSIF (lv_calificacion >= 65) AND (lv_calificacion <= 75) THEN
DBMS_OUTPUT.PUT_LINE('Aprobó la asignatura de forma deficiente');
-- condición de buena
ELSIF (lv_calificacion > 75) AND (lv_calificacion <= 100) THEN
DBMS_OUTPUT.PUT_LINE('Aprobó la asignatura con buena calificación');
-- condición de error
ELSE
DBMS_OUTPUT.PUT_LINE('Hay un error con la calificación');
END IF;
END;
Resultado
Aprobó la asignatura de forma mediocre
Statement processed.