[[anasayfa|]] / [[basit_dili_kuralları|]]
====== Döngü ======
Döngü kısaca aynı işlemin tekrarlanmasıdır. Fakat aynı işlem tekrarlanırken, işlem gören değerler farklı olabilir. Bu sebepten dolayı farklı teknik olanaklar sağlayan döngüler vardır.
Standart döngü modeli:
Döngü poz = 0 Dan 9 Kadar
Denetim poz
DöngüSon
yada
Döngü poz = 0 Dan 9 Kadar 1 Adım Artış
Denetim poz
DöngüSon
Bu örnekteki döngü 0'dan 9'kadar adım adım yükseliyor. Başlangıçta 0 iken, ikinci adımda 1, sonra 2, sonra 3, sonra 4 vesaire oluyor. Adım adım artışı ikişer ikişer, üçer üçer veya daha fazla belirlenebilir:
Döngü poz = 0 Dan 9 Kadar 3 Adım Artış
Denetim poz
DöngüSon
Örnekte kullanılan "poz" bir değişkendir ve rakamsal değer içerir. İkinci model, standart modele çok benzer, fakat tersine işlemektedir:
Döngü poz = 9 Dan 0 Kadar 1 Adım Düşüş
Denetim poz
DöngüSon
Bu örnekte döngü değeri 9 ile başlar ve her adımda bir puan düşerek, 0'da noktalanır.
Eğer bir dizilimin öğelerine döngü yardımıyla erişmek istiyorsan, şöyle bir kod girebilirsin:
Döngü poz = 0 Dan diz - 1 Kadar 1 Adım Artış
Denetim diz[poz]
DöngüSon
Dizilimin adeti 10 ise, öğelerin erişim bandı 0 ile 9 arasıdır. Bu yüzden "diz -1" demek zorundasın. Aksi taktirde döngü dizilimin sonuncu öğesinden sonra olmayan bir öğe daha okumaya çalışacak ve hataya sebebiyet verecektir.
Bandı belirlemek için "Dan" komutu yanısıra "Den" komutunuda kullanabilirsin. İkiside aynı manayı ifade etmektedir. Örnek:
Döngü poz = 1 Den 3 Kadar 1 Adım Artış
Denetim poz
DöngüSon
Veya
Döngü poz = 6 Dan 8 Kadar 1 Adım Artış
Denetim poz
DöngüSon
Birinci ve ikinci döngü modelleri otomatiktir. Yani her ikisinede sayaç görevi gören bir değişken girilir, örnekte "poz" gibi. Ayrıca bandı bellidir. "a" dan "b" ye kadardır.
Döngü'nün bir farklı modeli daha vardır. Bu farklı model özellikle dizilimler için tasarlanmıştır:
Döngü öğe Kaynağı DizilimAdı Artış
Denetim Öğe
DöngüSon
Bu örnekte yine "Artış" ile dizilimin başından sonuna kadar gidilirken, "Düşüş" ile dizilimin sonundan başlayıp başına kadar gidilir. Buradaki "Öğe" ise dizilimin kendi türünden bir işaretli değişkendir. Sayaç değildir. Dizilimin sıradaki öğesi bu değişkene bağlanır ve anında değerlendirilebilir. Eğer "öğe" işaretli değilde, normal olarak belirlenirse, bu normal değişken türleri açısından sıkıntı yapmaz. Fakat eğer dizilimin türü yine dizilimsel bir tür ise veya yapısal veya objesel ise, o halde gereksiz yere öğe kopyası oluşturulur ve buda uygulamanın yavaşlamasına neden olur. En güzel yöntem "öğe" değişkenini mutlaka işaretli olarak belirlemektir.
Hangi döngüde olursan ol, her döngüyü anında terk etme imkanın vardır. Bunun için tek satırlık komut olarak İptal emrini girmen yeterlidir.
Örnek:
Döngü poz = 0 Dan 99 Kadar 1 Adım Artış
Denetim poz
Eğer poz > 59 İse
İptal
EğerSon
DöngüSon
Veya:
Değişken Rakam poz = 0
Döngü öğe Kaynağı DizilimAdı Artış
Denetim Öğe
Eğer poz > 59 İse
İptal
EğerSon
poz ++
DöngüSon