PL/SQL - LOOPS

PL/SQL - LOOPS



SImple LOOP syntax:

LOOP
---
---
EXIT WHEN condition;
END LOOP;

write a PL/SQL code block that displays the table of a number:

SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number;
res number;
BEGIN
/*take user input*/
n:=&n;
/*initialize loop var*/
i:=1;
/*loop*/
LOOP
/*caluculate*/
res:=n*i;
/*display*/
DBMS_OUTPUT.PUT_LINE(res);
/*increment*/
i:=i+1;
/*exit condition*/
EXIT WHEN i=11;
END LOOP;
END;
/
-------------------------------------------------------------------------------------
/*
write the program to display the table of a number
*/

SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number := 1;
res number;
BEGIN
/*user input*/
n := &n;
/*Iterate using simple loop*/
LOOP
res := n * i;
i := i + 1;
DBMS_OUTPUT.PUT_LINE(res);
EXIT WHEN i > 10;
END LOOP;
END;
/

///////////////////////////////////////////////////////////////////

SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
i number := 1;
res number;
BEGIN
/*user input*/
n := &n;
/*Iterate using simple loop*/
LOOP
res := n * i;
i := i + 1;
DBMS_OUTPUT.PUT_LINE(res);
IF i > 10 THEN
EXIT;
END IF;
END LOOP;
END;
/

///////////////////////////////////////////////////////////////////////////

FOR Loop Syntax:

FOR countervar IN minval..maxval LOOP
---
---
END LOOP;

We cannot manually increment / decrement the counter variable value
We do not need to declare the counter var.

write a PL/SQL code block that displays the table of a number:

SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*take user input*/
n:=&n;
/*loop*/
FOR i IN 1..10 LOOP
/*caluculate*/
res:=n*i;
/*display*/
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/


/*
Display the table of a no.
*/

SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*user input*/
n := &n;
/*iterate*/
FOR i IN 1..10 LOOP
res := n * i;
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/


SET ECHO ON;
SET SERVEROUTPUT ON;
DECLARE
n number;
res number;
BEGIN
/*user input*/
n := &n;
/*iterate*/
FOR i IN REVERSE 1..10 LOOP
res := n * i;
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
END;
/
---------------------------------------------------------------------------

Post a Comment

0 Comments