Döngüler 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
. Üçüncü döngü modeli ise çok farklı çalışır
. Bu modelde döngünün kendisi bir değişkeni sayaç olarak kullanmaz
. Onun yerine bir kritere bakar
:
Tekrar
poz += 1
Tekrarla poz = 30
Bu çok basit örnekte aranan kriter
"poz" adresinin değerinin 30'a ulaşmış olmasıdır
. Tabi başka kriterlerde belirlenebilir
:
Tekrar
? ...
Tekrarla x > 5 Ve p = 0 Ve prosedürüm() <> 1 Veya f = 0
Dördüncü ve sonuncu döngü ise, üçüncü döngüye benzer ve bitmeksizin çalışan bir döngüdür
:
Tekrar
poz += 1
TekrarSon
Bu döngüyü terk etmek için, başka bir yöntem kullanmak gerekiyor
. Aksi taktirde bu döngü program veya bilgisayar çökene kadar tekrarlamaya devam edecektir
. 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
Tekrar
? ...
İptal
Tekrarla x > 5 Ve p = 0 Ve prosedürüm() <> 1 Veya f = 0
Veya
Tekrar
poz += 1
İptal
TekrarSon