25 Temmuz 2007 Çarşamba

FOR Döngüsü (FOR Loop)

While döngüsünün aksine For döngüsünde tekrar sayısı önceden bellidir, bu tekrarların sınırı tamsayılarla belirlenir. Yazım kuralı (syntax) şöyledir:

FOR Sayac IN [REVERSE] alt_sınır..üst_sınır LOOP
ifadeler
END LOOP;

Sınır değerleri içindeki her bir tamsayı için ifadeler yürütülür ve sayaç bir artırılır. Örneğin:

FOR i IN 1..3 LOOP ---> 1,2,3 değerleri sırayla i'ye atanır
ifadeler ---> 3 kere yürütülür
END LOOP;

'REVERSE' kullanılmazsa sınırlar içindeki tamsayılar küçükten büyüğe atanır, 'REVERSE' kullanılırsa tersten yani büyükten küçüğe atanır ancak sınır değerleri gene küçükten büyüğe yazılmalıdır.

FOR i IN REVERSE 1..3 ---> 3,2,1 değerleri sırayla i'ye atanır
ifadeler ---> 3 kere yürütülür
END LOOP;

Bir For döngüsünün içinde, döngü sayacı bir sabitmiş gibi kullanılabilir ancak kendisine bir değer atanamaz:

FOR ctr IN 1..10 LOOP
IF NOT finished THEN
INSERT INTO ... VALUES (ctr, ...); ---> doğru kullanım
factor := ctr * 2; ---> doğru kullanım
ELSE
ctr := 10; ---> hatalı kullanım
END IF;
END LOOP;

Hiç yorum yok: