Control Flow Statements SET SERVEROUTPUT ON; DECLARE v_place VARCHAR2(20) := '&enter_place'; BEGIN IF v_place = 'India' THEN DBMS_OUTPUT.PUT_LINE('Welcome to : ' || v_place); ELSIF v_place = 'America' THEN DBMS_OUTPUT.PUT_LINE('Welcome to : ' || v_place); ELSE DBMS_OUTPUT.PUT_LINE('Invalid place'); END IF; END; / Loops Simple Loop The exit condition can be declared using EXIT WHEN or an IF statement with EXIT SET SERVEROUTPUT ON; DECLARE V_counter NUMBER := 0; v_table NUMBER := &enter_a_number; v_result NUMBER := 1; BEGIN LOOP v_counter := v_counter + 1; v_result := v_counter * v_table; DBMS_OUTPUT.PUT_LINE(v_table || ' x ' || v_counter || ' = ' || v_result); EXIT WHEN v_counter >= 10; END LOOP; END; / While Loop When using Boolean we need to change its value to false to exit from the loop SET SERVEROUTPUT ON; DECLARE v_counter NUMBER := 0; v_table NUMBER := &enter_a_number; v_result NUMBER; v_bool BOOLEAN := TRUE; BEGIN WHILE v_bool LOOP v_counter := v_counter + 1; v_result := v_counter * v_table; DBMS_OUTPUT.PUT_LINE(v_table || ' x ' || v_counter || ' = ' || v_result); IF v_counter >= 10 THEN v_bool := FALSE; END IF; END LOOP; END; / Numeric For Loop SET SERVEROUTPUT ON; DECLARE v_table NUMBER := &enter_a_number; v_result NUMBER; BEGIN For v_counter IN 1 .. 10 LOOP v_result := v_counter * v_table; DBMS_OUTPUT.PUT_LINE(v_table || ' x ' || v_counter || ' = ' || v_result); END LOOP; END; / Case Statement DECLARE v_grade NUMBER:=&g; BEGIN CASE v_grade WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('Junior Engineer'); WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('Middle Level Engineer'); WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('Senior Engineer'); ELSE DBMS_OUTPUT.PUT_LINE('No Engineers in this '||v_grade||' grade'); END CASE; END; /