Oracle Örnek ile PL/SQL FOR LOOP

For Döngüsü Nedir?

“FOR LOOP” ifadesi, bir kodu başka koşullara bağlı kalmak yerine bilinen sayıda çalıştırmak istediğinizde en uygunudur.

Bu döngüde alt sınır ve üst sınır belirlenecek ve döngü değişkeni bu aralıkta olduğu sürece döngü yürütülecektir.

Döngü değişkeni kendiliğinden artımlıdır, dolayısıyla bu döngüde açık bir artırma işlemine gerek yoktur. Döngü değişkeni örtülü olarak bildirildiği için bildirilmesine gerek yoktur.

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

Sözdizimi Açıklaması:

  • Yukarıdaki sözdiziminde 'FOR' anahtar sözcüğü döngünün başlangıcını, 'END LOOP' ise döngünün sonunu belirtir.
  • Döngü değişkeni, yürütme kısmı yürütülmeden önce her defasında değerlendirilir.
  • Yürütme bloğu yürütülmesi gereken tüm kodu içerir. Yürütme kısmı herhangi bir yürütme ifadesini içerebilir.
  • Döngü_değişkeni, tüm döngünün yürütülmesi sırasında örtülü olarak bildirilir ve bu döngü_değişkeninin kapsamı yalnızca bu döngünün içinde olacaktır.
  • Döngü değişkeni aralığın dışına çıkarsa kontrol döngüden çıkar.
  • 'REVERSE' anahtar sözcüğünü alt_limit'in önüne ekleyerek döngünün ters sırada çalışması sağlanabilir.

Örnek 1: Bu örnekte, FOR döngü ifadesini kullanarak 1'den 5'e kadar olan sayıları yazdıracağız. Bunun için aşağıdaki kodu çalıştıracağız.

Oracle DÖNGÜ İÇİN 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;
/

Kod Açıklaması:

  • Kod satırı 2: “Program başladı” ifadesinin yazdırılması.
  • Kod satırı 3: 'FOR' anahtar kelimesi döngünün başlangıcını işaretler ve loop_variable 'a' bildirilir. Artık 1'den 5'e kadar bir değere sahip olacak
  • Kod satırı 5: 'a'nın değerini yazdırır.
  • Kod satırı 6: 'END LOOP' anahtar kelimesi yürütme bloğunun sonunu işaret eder.
  • Koşul başarısız olacağından ve kontrol döngüden ÇIKACAĞINDAN 'a' 5 değerine ulaşana kadar 6. satırdaki kod yürütülmeye devam edecektir.
  • Kod satırı 7: “Program tamamlandı” ifadesinin yazdırılması

İç içe geçmiş döngüler

Döngü ifadeleri iç içe de yerleştirilebilir. Dış ve iç döngü farklı tiplerde olabilir. İç içe geçmiş döngüde, dış döngünün her bir yineleme değeri için iç döngü tamamen yürütülür.

İç içe geçmiş döngüler

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

Sözdizimi Açıklaması:

  • Yukarıdaki sözdiziminde, dış döngünün içinde bir döngü daha vardır.
  • Döngüler herhangi bir türde olabilir ve yürütme işlevi kısmı aynıdır.

Örnek 1: Bu örnekte, FOR döngü ifadesini kullanarak 1'den 3'e kadar olan sayıları yazdıracağız. Her sayı, değeri kadar kez yazdırılacak. Bunun için aşağıdaki kodu çalıştıracağız.

İç içe geçmiş döngüler

İç içe geçmiş döngüler

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;
/

Kod Açıklaması:

  • Kod satırı 2: 'b' değişkeninin 'NUMBER' veri türü olarak bildirilmesi.
  • Kod satırı 4: “Program başladı” ifadesinin yazdırılması.
  • Kod satırı 5: 'FOR' anahtar kelimesi döngünün başlangıcını işaretler ve loop_variable 'a' bildirilir. Artık 1'den 3'e kadar bir değere sahip olacak
  • Kod satırı 7: Her seferinde 'b' değerini '1'e sıfırlamak.
  • Kod satırı 8: İç döngü sırasında a>=b durumunu kontrol eder.
  • Kod satırı 10: Yukarıdaki koşul karşılandığı sürece 'a'nın değerini yazdırır.
  • Kod satırı 14: “Program tamamlandı” ifadesinin yazdırılması

ÖZET

döngü Döngü için
Çıkış kriteri Sayaç limite ulaştığında çıkın
kullanım Yürütülecek döngü sayısı bilindiğinde kullanılması iyidir.