FOR - NEXT (Döngü - Çevrim) Komutu

FOR - NEXT

FOR bir döngü komutudur. IF THEN GOTO deyimleri ile yapılan da bir döngü olayıydı. Ancak FOR komutu ile yapılan döngü olayı biraz daha farklı.

Döngü istenilen koşul ve şartlar gerçekleşinceye kadar yapılması istenilen işlemlerin yapılması ve koşul gerçekleştiğinde diğer program satırlarına geçilmesidir.

Bu komutun kullanılışı;

FOR

İŞLEM

NEXT

Şeklinde olur. Yani döngü FOR komutu ile başlar NEXT ile biter. Aradaki işlem bölümüne de şartlar ve koşullar tamamlanıncaya kadar yapılacak işlemler yazılır. Bunu daha iyi anlayabilmek için basit bir program yapalım. Diyelim ki; Ekrana alt alta 15 kere Orhan yazdıralım. Bunu gayet tabi 15 satırda alt alta PRINT "Orhan" komutunu kullanarak yazdırabiliriz. Fakat bu işlem için FOR komutunu kullanırsak hem FOR komutunu hem de bu komutun kullanım amacını öğrenmiş oluruz. Bu işlem için şu program satırlarını kullanıyoruz;

10 FOR I=1 TO 15

20 PRINT "Orhan"

30 NEXT

40 END

Burada döngü kısmı FOR 'dan başlar NEXT 'de biter. Yani program çalıştığında bilgisayar FOR komutunun önündeki I değişkeninin aldığı değere bakar. (Değişken isminin I olması şart değildir. Herhangi bir isim de olabilir. Ancak Sayısal değişken olmalıdır, yani sonu $ ile bitmemelidir. )

Burada biz bu değişkene 1 'den 15'e kadar değer atamışız. Aradaki TO deyiminin anlamı malum, İngilizcedeki e, a, ye, ya anlamlarını taşıyor. Demek ki FOR komutunun önündeki değişkenin aldığı değere göre döngünün kaç kez tekrarlanacağını saptıyoruz. O halde burada FOR I=1 TO 15 komutu ile Bilgisayara; Çevrime (Döngüye) Gir, Bu çevrime 1 den başla 15 kez tekrarlanıncaya kadar devam et diyoruz. Böylece Bilgisayar FOR komutunun altındaki satırdan başlayarak NEXT komutunu görünceye kadar olan işlemleri I değişkeninde belirtilen değer kadar, yani 15 kez tekrarlayacaktır. Daha açık bir ifade ile FOR ile NEXT komutu arasında olan PRINT "Orhan" komut satırı gereği ekrana Orhan yazdıktan sonra NEXT satırını görünce bu 1 diyip tekrar FOR komut satırına dönecek tekrar bir alt satıra geçip ekrana Orhan yazacak, tekrar NEXT komutunu görünce daha evvelce bu 1 demişti ya, bu defaki 1 'i evvelki bir 'in üstüne ilave edecek ve bu 2 oldu diyecek, böylece her NEXT satırına gelişinde üstüne bir ilave edecek. Ne zamana kadar; Ta ki NEXT satırına gelip de bu 15 diyip FOR komutuna geri döndüğü zaman oradaki FOR I=1 TO 15 komut satırının sonundaki 15 'i görünce "ha bu 15 son muş" diyip daha hiçbir işlem yapmadan, aksine bir komut satırı yoksa NEXT komut satırının bir altındaki satırdan işleme devam edecek. Çünkü FOR - NEXT döngüsü içerisindeki gerekli işlemler yapılarak (Ekrana 15 kez Orhan yazdırılarak) FOR komut satırında belirtilen şart ve koşullar sağlanmıştır.

Daha değişik ve kısa olarak anlatırsak;

Bu komutun icrasında; işlem FOR komut satırı ile NEXT komut satırı arasında, FOR komutunun önündeki şart kadar tekrarlanır. İşlemde I'nın değeri örneğimizde 1 den başlar. Dolayısıyla ilk seferinde I değişkeni 1 değerini alır. ikinci defa 2, üçüncü defa 3 gibi gider... Ne zaman ki I değişkeninin değeri 15 olur, işte o döngümüzün son tekrarı olur ve program NEXT komut satırının bir altından çalışmaya devam eder. (Döngüden çıkar) Demek ki burada FOR komut satırının sonunda 15 değil de 8 olsaydı program 8 kere Orhan yazdıktan sonra döngüden çıkacaktı.

Şimdi de bu komuta yeni bir koşul ekleyelim: STEP

FOR komutunun sonuna ekleyeceğimiz STEP komutu, komut satırında belirlenen işlem sayısının sayım sırasını farklılaştırır.

ÖRNEK;

FOR A=1 TO 10 STEP 2

Şeklindeki bir satırda STEP 2 koşulu kullanılmamış olsaydı NEXT 'e kadar olan işlemler 1 den başlayarak 10 kez tekrar edilecekti. Ancak burada Bilgisayar ilk işlemi yapıp bu 1 dedikten sonra FOR 'a dönüp sonundaki STEP 2 koşulunu görünce 2 adım atlıyor yani 1+2 diyor ve 3'den devam ediyor. Bir başka deyişle STEP 2 koşulu Bilgisayara "Evet 1 'den başla 10'a kadar tekrar et, ama 2'şer sayarak tekrar et" diyor. Demek ki Bilgisayar 1, 3, 5, 7 ve 9. kerelerde işlem yapacak diğer dönüşlerinde işlem yapmayacak. Bunu şöyle uygulayalım;

10 FOR A=1 TO 10 STEP 2

20 PRINT A

30 NEXT

40 END

Ekrana yazılacak olan sonuç şudur;

1

3

5

7

9

Burada PRINT A satırında FOR komutundaki A değerinin aldığı değerler yazdırılıyor. Eğer STEP 2 satırı olmasaydı Ekrana sırayla alt alta 1 2 3 4 5 6 7 8 9 ve 10 sayıları yazılacaktı. Eğer burada STEP 2 yerine STEP 4 yazılsaydı ekranda 1, 5 ve 9 sayıları yazılacaktı.

Ayrıca iç içe döngü komutları da kullanabiliriz. Örnekle gösterelim:

10 CLS

20 FOR C=1 TO 3

30 PRINT "ORHAN"

40 FOR D=1 TO 2

50 PRINT "AYGÜN"

60 NEXT D

70 NEXT C

80 END

Burada Bilgisayar önce FOR C satırındaki koşul gereği 3 kere tekrarlanacak bir döngüye girer. Bu döngü gereği döngünün ilk seferinde önce ekrana "Orhan" yazar. Sonra FOR D döngüsündeki ikinci döngü gereği ekrana iki (2) kez "Aygün" yazar. Bu işlemleri 3 kez tekrarlar ve ekranda şöyle bir görüntü oluşur.

ORHAN

AYGÜN

AYGÜN

ORHAN

AYGÜN

AYGÜN

ORHAN

AYGÜN

AYGÜN

Burada dikkat edilecek konular şunlardır. Hiçbir zaman döngüler birbirini kesmezler. Bir döngünün içindeki diğer döngü, asıl döngü bitmeden bitmelidir. Dikkat ederseniz, FOR komutuna ait değişken ismi NEXT komutunun sonuna da eklenmiştir. Bu değişken ismi NEXT satırının hangi FOR komut satırının sonunu belirttiğini gösterir.

Bu şekildeki FOR - NEXT kullanımına NESTING LOOP (İçiçe döngü) diyoruz.

12. Sayfa           14. Sayfa

INDEX