Oracle PL/SQL FOR LOOP z przykładem

Co to jest pętla For?

Instrukcja „FOR LOOP” najlepiej sprawdza się, gdy chcesz wykonać kod określoną liczbę razy, a nie w oparciu o inne warunki.

W tej pętli zostanie określona dolna i górna granica i dopóki zmienna pętli będzie znajdować się pomiędzy tym zakresem, pętla zostanie wykonana.

Zmienna pętli jest samoinkrementująca, więc żadna jawna operacja inkrementacji nie jest potrzebna w tej pętli. Zmienna pętli nie musi być deklarowana, ponieważ jest deklarowana niejawnie.

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

Wyjaśnienie składni:

  • W powyższej składni słowo kluczowe „FOR” oznacza początek pętli, a „END LOOP” oznacza koniec pętli.
  • Zmienna pętli jest oceniana za każdym razem przed wykonaniem części wykonawczej.
  • Blok wykonawczy zawiera cały kod, który należy wykonać. Część wykonująca może zawierać dowolną instrukcję wykonania.
  • Zmienna_pętli jest deklarowana niejawnie podczas wykonywania całej pętli, a zakres tej zmiennej_pętli będzie znajdować się tylko wewnątrz tej pętli.
  • Jeśli zmienna pętli wyjdzie poza zakres, sterowanie wyjdzie z pętli.
  • Pętlę można uruchomić w odwrotnej kolejności, dodając słowo kluczowe „REVERSE” przed dolnym limitem.

1 przykład: W tym przykładzie wydrukujemy liczbę od 1 do 5 za pomocą pętli FOR. W tym celu wykonamy następujący kod.

Oracle PĘTLA FOR PL/SQL

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

Wyjaśnienie kodu:

  • Linia kodu 2: Drukowanie komunikatu „Program uruchomiony”.
  • Linia kodu 3: Słowo kluczowe „FOR” oznacza początek pętli i deklarowana jest zmienna_pętli „a”. Będzie teraz mieć wartość od 1 do 5
  • Linia kodu 5: Drukuje wartość „a”.
  • Linia kodu 6: Słowo kluczowe „END LOOP” oznacza koniec bloku wykonawczego.
  • Kod z linii 5 będzie wykonywany aż do osiągnięcia przez „a” wartości 6, gdyż warunek nie zostanie spełniony i sterowanie WYJDZIE z pętli.
  • Linia kodu 7: Drukowanie oświadczenia „Program zakończony”

Pętle zagnieżdżone

Instrukcje pętli można także zagnieżdżać. Pętla zewnętrzna i wewnętrzna mogą być różnych typów. W pętli zagnieżdżonej, dla każdej wartości iteracji pętli zewnętrznej, pętla wewnętrzna zostanie w pełni wykonana.

Pętle zagnieżdżone

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP;

Wyjaśnienie składni:

  • W powyższej składni pętla zewnętrzna zawiera w sobie jeszcze jedną pętlę.
  • Pętle mogą być dowolnego typu, a część funkcjonalności wykonania jest taka sama.

1 przykład: W tym przykładzie wydrukujemy liczbę od 1 do 3 za pomocą pętli FOR. Każda liczba zostanie wydrukowana tyle razy, ile wynosi jej wartość. W tym celu wykonamy następujący kod.

Pętle zagnieżdżone

Pętle zagnieżdżone

DECLARE 
b NUMBER;
BEGIN
dbms output put line(‘Program started' );
FOR a IN 1..3 
LOOP
b:=1;
WHILE (a>=b)
LOOP
dbms output put line(a);
b:=b+1;
END LOOP;‭	
END LOOP;‭	‬
dbms_output.put_line('Program completed' );
END;
/

Wyjaśnienie kodu:

  • Linia kodu 2: Deklarowanie zmiennej „b” jako typu danych „NUMBER”.
  • Linia kodu 4: Drukowanie komunikatu „Program uruchomiony”.
  • Linia kodu 5: Słowo kluczowe „FOR” oznacza początek pętli i deklarowana jest zmienna_pętli „a”. Będzie teraz mieć wartość od 1 do 3
  • Linia kodu 7: Za każdym razem resetowanie wartości „b” do „1”.
  • Linia kodu 8: Wewnętrzny pętla while sprawdza warunek a>=b.
  • Linia kodu 10: Drukuje wartość „a”, o ile spełniony jest powyższy warunek.
  • Linia kodu 14: Drukowanie oświadczenia „Program zakończony”

Podsumowanie

Pętla Dla pętli
Kryteria WYJŚCIA Wyjdź, gdy licznik osiągnie limit
Stosowanie Dobry do użycia, gdy znana jest liczba pętli do wykonania.