Döngüler nedir?
Döngüler, bir programdaki kodun belirli bir bölümünün istenen sayıda çalıştırılmasına izin verir.
Bu eğitimde, PL / SQL'deki döngü kavramını ve döngülerde kontrol akışını göreceğiz. Öğreneceksiniz-
- Döngüler Kavramına Giriş
- Döngü Kontrol İfadeleri
- PL / SQL'de Döngü Türleri
- Temel Döngü İfadesi
- Döngülerin Etiketlenmesi
Döngüler Kavramına Giriş
Döngüler kavramı, kodlamada aşağıdaki avantajı sağlar.
- Kodun yeniden kullanılabilirliği
- Azaltılmış kod boyutu
- Kolay kontrol akışı
- Azaltılmış Karmaşıklık
Aşağıdaki diyagram, döngü konseptini resimli bir şekilde göstermektedir.
Yukarıdaki diyagramda, döngü koşulu kontrol edilecek ve döngü koşulu karşılandığı sürece yürütme bloğu yürütülecektir.
Her yinelemede, döngü koşuluna fiilen karar veren döngü sayacı değişkeni, denetimi döngüden çıkacak şekilde değiştirmelidir. Bazı durumlarda, bu döngü sayacı değişkeni, önceden tanımlanmış bir sayım için artırma / azaltma operatörüdür ve bazı durumlarda, bloğu tatmin edene kadar yürütmeye devam eden bir arama koşuludur.
Döngü Kontrol İfadeleri
Döngüler kavramını öğrenmeden önce, döngü kontrol ifadelerini öğrenmek zorunludur. Döngü kontrol ifadeleri, döngü içindeki yürütme akışını fiilen kontrol edenlerdir. Aşağıda, döngü kontrol ifadeleri hakkında ayrıntılı açıklama bulunmaktadır.
DEVAM ET
Bu anahtar sözcük, PL / SQL motoruna, PL / SQL motoru döngü içinde bu anahtar sözcükle karşılaştığında, kodun yürütme bloğunda kalan kodu atlayacağı ve sonraki yinelemenin hemen başlayacağı bir talimat gönderir. Bu, esas olarak, döngü içindeki kod belirli yineleme değerleri için atlanmak istiyorsa kullanılacaktır.
ÇIKIŞ / ÇIKIŞ ZAMAN
Bu anahtar sözcük, PL / SQL motoruna, PL / SQL motoru bu anahtar sözcükle karşılaştığında hemen geçerli döngüden çıkacağı bir talimat gönderir. PL / SQL motoru EXIT ile iç içe bir döngüde karşılaşırsa, tanımlandığı döngüden, yani iç döngüde EXIT verilmesi, yalnızca iç döngüden kontrolden çıkacaktır ancak dış döngüden değil. 'NE ZAMAN ÇIKIŞ' ifadesinin ardından Boole sonucu veren bir ifade gelir. Sonuç DOĞRU ise, kontrol ÇIKIŞ olacaktır.
GİT
Bu ifade, denetimi etiketli ifadeye ("GOTO
- Kontrolün aktarımı yalnızca alt programlar içinde yapılabilir.
- İstisna işleme bölümünden yürütme bölümüne kontrol aktarımı yapılamaz.
Kontrolün bir bölümden diğerine aktarılması nedeniyle programda kod kontrol izlenebilirliği çok zor olacağından, başka bir alternatif olmadığı sürece bu ifadenin kullanılması önerilmez.
PL / SQL'de Döngü Türleri
PL / SQL, aşağıdaki üç tür döngü sağlar
- Temel döngü ifadesi
- Döngü ifadesi için
- While döngü ifadesi
Temel Döngü İfadesi
Bu döngü ifadesi, PL / SQL'deki en basit döngü yapısıdır. Yürütme bloğu 'DÖNGÜ' anahtar sözcüğü ile başlar ve 'SON DÖNGÜ' anahtar sözcüğü ile biter.
Çıkış koşulu, kontrolün döngüden çıkması için bu yürütme bloğunun içinde verilmelidir.
Döngüden çıkmak için EXIT anahtar kelimesinin yürütme bölümünde açıkça verilmesi gerekir.
LOOPSözdizimi Açıklaması:END LOOP;
- Yukarıdaki sözdiziminde, 'DÖNGÜ' anahtar sözcüğü döngünün başlangıcını ve 'SON DÖNGÜ' döngünün sonunu gösterir.
- Yürütme bloğu, EXIT koşulu dahil yürütülmesi gereken tüm kodu içerir.
- Yürütme bölümü herhangi bir yürütme ifadesini içerebilir.
Not: EXIT anahtar sözcüğü içermeyen temel döngü deyimi, asla durmayacak bir INFINITE-LOOP olacaktır.
Örnek 1 : Bu örnekte, temel döngü deyimini kullanarak 1'den 5'e kadar sayı yazdıracağız. Bunun için aşağıdaki kodu çalıştıracağız.
DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/
Kod Açıklaması:
- Kod satırı 2 : 'a' değişkenini 'SAYI' veri türü olarak bildirmek ve onu '1' değeriyle başlatmak.
- Kod satırı 4 : "Program başladı" ifadesinin yazdırılması.
- Kod satırı 5: 'DÖNGÜ' anahtar kelimesi döngünün başlangıcını işaret eder.
- Kod satırı 6: 'a' değerini yazdırır.
- Kod satırı 7: 'a' değerini +1 artırır.
- Kod satırı 8: 'a' değerinin 5'ten büyük olup olmadığını kontrol eder.
- Kod satırı 9: 'SON DÖNGÜ' anahtar sözcüğü yürütme bloğunun sonunu gösterir.
- 6. satırdan 8. satıra kadar olan kod, 'a' 6 değerine ulaşıncaya kadar çalışmaya devam edecektir, çünkü koşul DOĞRU'ya dönecek ve kontrol döngüden ÇIKACAKTIR.
- Kod satırı 10: "Program tamamlandı" ifadesinin yazdırılması
Döngülerin Etiketlenmesi
PL / SQL'de döngüler etiketlenebilir. Etiket, "<<" ve ">>" arasına alınmalıdır. Döngülerin özellikle iç içe döngü kodlarında etiketlenmesi daha fazla okunabilirlik sağlayacaktır. Etiket, söz konusu döngüden çıkmak için EXIT komutunda verilebilir. Etiket kullanılarak, çıkış komutu ve ardından dış döngü etiketi verilerek iç içe döngülerin dış döngüsünden döngülerin içindeki herhangi bir yerden doğrudan çıkmak için kontrol yapılabilir.
<Sözdizimi Açıklaması:>LOOP . < > LOOP --inner END LOOP; . END LOOP;
- Yukarıdaki sözdiziminde, çıkış döngüsü içinde bir döngü daha vardır.
- '<
>' ve '< >' bu döngülerin etiketleridir.
Örnek 1 : Bu örnekte, Temel döngü deyimini kullanarak 1'den başlayarak sayı yazdıracağız. Her numara, değeri kadar yazdırılacaktır. Serinin üst sınırı program bildirim kısmında sabitlenmiştir. Bunu başarmak için etiket konseptini nasıl kullanabileceğimizi öğrenelim. Bunun için aşağıdaki kodu çalıştıracağız
DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop» LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/
Kod Açıklaması:
- Kod satırı 2-3 : 'a' ve 'b' değişkenini 'NUMARA' veri türü olarak bildirme.
- Kod satırı 4 : "Üst_sınır" değişkenini "4" değerine sahip "SAYI" veri türü olarak bildirme
- Kod satırı 6 : "Program başladı" ifadesinin yazdırılması.
- Kod satırı 7: Dış döngü "dış döngü" olarak etiketlendi
- Kod satırı 9: "a" nın değeri 1 artırılır.
- Kod satırı 11: İç döngü "iç döngü" olarak etiketlendi.
- Kod satırı 13: 'a' değerinin 'üst_sınır' değerinden yüksek olup olmadığını kontrol eden ÇIKIŞ koşulu. Değilse, daha ileri gidecektir, aksi takdirde doğrudan dış döngüden çıkar.
- Kod satırı 14: 'b' değerini yazdırma.
- Kod satırı 15: 'b'nin değerini +1 artırır.
- Kod satırı 16: "b" nin değerinin "a" dan yüksek olup olmadığını kontrol eden ÇIKIŞ koşulu. Eğer öyleyse, iç döngüden kontrolden çıkacaktır.
- Kod satırı 14: "Program tamamlandı" ifadesinin yazdırılması
Özet
Döngü | Temel Döngü |
Çıkış kriteri | Yürütme bölümünde 'EXIT' anahtar kelimesiyle karşılaştığında çık |
Kullanım | Çıkışın belirli bir koşula bağlı olmadığı durumlarda kullanmak iyidir. |