Döngü İçerideyken Oracle Örnekle PL/SQL

⚡ Akıllı Özet

Oracle PL/SQL WHILE döngüsü, bir koşul doğru kaldığı sürece bir kod bloğunu tekrarlar. Her yinelemeden önce çıkış koşulunu test eden bir giriş kontrol döngüsüdür, bu nedenle blok sıfır kez çalışabilir ve açık bir EXIT anahtar kelimesine ihtiyaç duymaz.

  • 🔁 Amaç: WHILE döngüsü, bir koşul doğru olduğu sürece çalışır ve yanlış olduğu anda durur.
  • 🚦 Giriş Kontrolü: Koşul, bloktan önce test edilir, bu nedenle döngü sıfır kez çalışabilir.
  • 🧮 Çıkışa Gerek Yok: Koşul her yinelemede örtük olarak doğrulanır, bu nedenle açık bir EXIT komutuna gerek yoktur.
  • 🔢 Sayaç: Blok içindeki bir değişkenin değişmesi gerekir, böylece koşul sonunda yanlış hale gelir.
  • ♾️ Sonsuz Risk: Sayaç hiçbir zaman koşulu sağlamazsa, döngü sonsuza kadar çalışır.
  • 🇧🇷 vs FOR: Yineleme sayısı bilinmiyorsa WHILE, sabitse FOR döngüsünü kullanın.
  • 🚪 Erken Çıkış: EXIT WHEN, koşul yanlış hale gelmeden önce WHILE döngüsünden çıkmayı sağlayabilir.

Oracle PL/SQL While Döngüsü

PL/SQL While Döngüsü nedir?

MKS Döngü sırasında PL/SQL'de `döngü` ifadesi, temel döngü ifadesine benzer şekilde çalışır, ancak çıkış koşulu döngünün en başında yer alır. Çıkış koşulu yürütmeden önce kontrol edildiği için, yürütme bloğunun yalnızca koşul sağlandığında çalıştığı bir giriş kontrol döngüsü gibi çalışır.

Döngüden çıkmak için açıkça 'EXIT' anahtar kelimesine gerek duymaz, çünkü koşulu her seferinde örtük olarak doğrular.

PL/SQL While Döngüsü Söz Dizimi

WHILE <EXIT condition>
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
END LOOP;
  • 'WHILE' anahtar kelimesi döngünün başlangıcını, 'END LOOP' ise sonunu belirtir.
  • Çıkış koşulu, yürütme bölümü başlamadan önce her seferinde değerlendirilir.
  • Çalıştırma bloğu, çalıştırılması gereken tüm kodu içerir.
  • Yürütme bölümü, herhangi bir yürütülebilir ifade içerebilir.

Örnek Oracle PL/SQL While Döngüsü

Bu örnekte, WHILE döngüsü kullanarak 1'den 5'e kadar sayıları yazdırıyoruz.

PL/SQL While Döngüsü Örneği
PL/SQL While Döngüsü Örneği
DECLARE
a NUMBER := 1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5)
LOOP
dbms_output.put_line(a);
a:= a+1;
END LOOP;
dbms_output.put_line('Program completed');
END;
/

Code Açıklama:

  • Code 2 hattı: 'a' değişkenini 'NUMBER' olarak tanımlayıp '1' değeriyle başlatıyoruz.
  • Code 4 hattı: “Program başlatıldı” ifadesinin yazdırılması.
  • Code 5 hattı: 'WHILE' anahtar kelimesi döngünün başlangıcını işaretler ve 'a' değerinin 5'ten küçük veya 5'e eşit olup olmadığını kontrol eder.
  • Code 7 hattı: 'a'nın değerini yazdırır.
  • Code 8 hattı: 'a' değerini 1 artırır.
  • Code 9 hattı: 'END LOOP' anahtar kelimesi, yürütme bloğunun sonunu işaretler.
  • 7. ve 8. satırlar, 'a' değeri 6'ya ulaşana kadar çalışmaya devam eder; bu noktada koşul FALSE değerini döndürür ve kontrol programdan çıkar. döngü.
  • Code 10 hattı: “Program tamamlandı” ifadesinin yazdırılması.

WHILE Döngüsü, FOR Döngüsü ve Temel Döngü Karşılaştırması

PL/SQL üç döngü türü sunar ve doğru olanı seçmek kodun anlaşılır olmasını sağlar. WHILE döngüsü koşula bağlı tekrarlamalar için uygundur, diğer ikisi ise sabit bir sayım veya açıkça kontrol edilen bir çıkış için uygundur.

döngü Çıkış kriteri En iyi kullanım zamanı
WHILE döngüsü En üstteki koşul yanlış hale gelir. Tekrarlama sayısı bilinmiyor.
Döngü için Sayaç, aralığın sonuna ulaşır. İterasyon sayısı biliniyor.
Temel döngü Blokta açıkça belirtilmiş ÇIKIŞ Çıkış manuel olarak kontrol ediliyor.

WHILE döngüsü koşulunu en başta test ettiği için, koşul baştan yanlışsa gövde sıfır kez çalışabilir. Bu, gövdesi her zaman en az bir kez çalışan temel bir döngüden en önemli farktır.

Sonsuz While Döngüsünden Kaçınma

WHILE döngüsü tamamen kontrol değişkeninin çıkış koşuluna doğru hareket etmesine bağlıdır. Eğer bu durum hiç gerçekleşmezse, döngü sonsuza kadar çalışır ve oturum donar. Bunu önleyen üç alışkanlık vardır:

  • Her yinelemede sayacı değiştirin. Örnekte, döngü içinde 'a' değeri artırılıyor; bu satırı kaldırmak, döngünün sonsuza kadar devam etmesine neden olurdu.
  • Sınırı test edin. Koşulun, yalnızca ideal durum için değil, başlangıç ​​değeri için de yanlış olabileceğini doğrulayın.
  • Güvenlik için "ÇIKIŞ YAPILDIĞINDA" uyarısı ekleyin. Veri odaklı bir döngü için, maksimum yineleme sayısında kullanılan EXIT WHEN ifadesi, beklenmedik bir değere karşı koruma görevi görür.

Tekrarlama sayısı gerçekten sabit olduğunda, FOR döngüsü, sayacı otomatik olarak yönetildiği için riski tamamen ortadan kaldırır.

SSS

Evet. Çünkü koşul bloktan önce kontrol ediliyor; eğer başlangıçta yanlışsa, kod bloğu asla çalışmaz. Bu giriş kontrolü, her zaman bir kez çalışan temel bir döngüden en büyük farktır.

Döngü içindeki bir değişkenin her yinelemede çıkış koşuluna doğru değiştiğinden emin olun. Maksimum sayıya ulaşıldığında EXIT WHEN eklemek, veri odaklı döngüler için faydalı bir güvenlik ağıdır.

Döngü sayısı bilinmediğinde ve bir koşula bağlı olduğunda WHILE kullanın. Sabit bir aralıkta döngü yaparken ise sayacı otomatik olarak yönetildiği için FOR kullanın.

Genellikle. Yapay zeka, kontrol değişkeninin çıkış koşuluna doğru hareket edip etmediğini kontrol edebilir ve hareket etmediğinde uyarı verebilir. Çıkışı canlı verilere bağlı olan bir döngünün yine de emin olmak için test edilmesi gerekir.

Evet. WHILE döngüsü en üstteki koşulu yanlış olduğunda sona erse de, gövde içindeki bir EXIT veya EXIT WHEN ifadesi döngüyü erken sonlandırabilir; bu da özel bir durumda döngüden çıkmak için kullanışlıdır.

Bu yazıyı şu şekilde özetleyin: