Oracle PL / SQL FOR LOOP med exempel

Innehållsförteckning:

Anonim

Vad är för loop?

"FOR LOOP" uttalande är bäst lämpligt när du vill köra en kod ett känt antal gånger snarare än baserat på några andra villkor.

I denna slinga kommer den nedre gränsen och den högre gränsen att specificeras och så länge som loopvariabeln ligger mellan detta område kommer slingan att exekveras.

Slingvariabeln är självinkrementell, så det krävs ingen uttrycklig inkrementoperation i denna slinga. Loop-variabeln behöver inte deklareras, eftersom den förklaras implicit.

FOR  in LOOPEND LOOP;
Syntaxförklaring:
  • I ovanstående syntax markerar nyckelordet "FOR" början på slingan och "END LOOP" markerar slutet på slingan.
  • Loop-variabel utvärderas varje gång innan exekveringsdelen körs.
  • Körningsblocket innehåller all kod som behöver köras. Exekveringsdelen kan innehålla vilket exekveringsuttalande som helst.
  • Loop_variable förklaras implicit under körningen av hela loopen, och omfattningen av denna loop_variable kommer endast att finnas inuti denna loop.
  • Om loop-variabeln kom ut ur intervallet kommer kontrollen att gå ut ur loop.
  • Slingan kan fås att fungera i omvänd ordning genom att lägga till nyckelordet 'REVERSE' före nedre gräns.

Exempel 1 : I det här exemplet ska vi skriva ut nummer från 1 till 5 med FOR-loop-uttalande. För det kommer vi att köra följande kod.

BEGINdbms Qutput.put linef.Prp.gram started.' );FOR a IN 1… 5LOOPdbms_output.put_line(a);END LOOP:dbms_output.put_iine('Program completed.');END;/

Kodförklaring:

  • Kodrad 2 : Skriva ut påståendet "Programmet startade".
  • Kodrad 3: Nyckelordet "FOR" markerar början på slingan och loop_variable "a" förklaras. Det har nu värdet från 1 till 5
  • Kodrad 5: Skriver ut värdet på 'a'.
  • Kodrad 6: Nyckelord 'END LOOP' markerar slutet på exekveringsblocket.
  • Koden från rad 5 fortsätter att exekvera tills 'a' når värdet 6, eftersom villkoret kommer att misslyckas och kontrollen AVSLUTAR från slingan.
  • Kodrad 7: Skriva ut påståendet "Programmet slutfört"

Kapslade öglor

Loop-uttalandena kan också kapslas. Den yttre och inre slingan kan vara av olika slag. I den kapslade slingan kommer den inre slingan att utföras helt för varje iterationsvärde för den yttre slingan.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Syntaxförklaring:
  • I ovanstående syntax har den yttre slingan ytterligare en slinga inuti.
  • Slingorna kan vara av alla typer och exekveringsfunktionsdelen är densamma.

Exempel 1 : I det här exemplet ska vi skriva ut nummer från 1 till 3 med FOR-loop-uttalande. Varje nummer kommer att skrivas ut så många gånger som dess värde. För det kommer vi att köra följande kod.

DECLAREb NUMBER;BEGINdbms output put line(‘Program started' );FOR a IN 1… 3LOOPb:=1;WHILE (a>=b)LOOPdbms output put line(a);b:=b+1;END LOOP;‭ END LOOP;‭ ‬dbms_output.put_line('Program completed' );END;/

Kodförklaring:

  • Kodrad 2 : Förklarar variabeln 'b' som 'NUMMER' datatyp.
  • Kodrad 4 : Skriva ut påståendet "Programmet startade".
  • Kodrad 5: Nyckelordet "FOR" markerar början på slingan och loop_variable "a" förklaras. Det har nu värdet från 1 till 3
  • Kodrad 7: Återställer värdet 'b' till '1' varje gång.
  • Kodrad 8: Inre medan loop kontrollerar om tillståndet a> = b.
  • Kodrad 10: Skriver ut värdet på 'a' så länge ovanstående villkor är uppfyllt.
  • Kodrad 14: Skriva ut påståendet "Programmet slutfört"

Sammanfattning

Slinga FÖR Loop
EXIT-kriterier Avsluta när räknaren når gränsen
Användande Bra att använda när slingräkning som ska köras är känd.