Delphi Programlamada Döngüleri Anlama ve Kullanma

Döngü, tüm programlama dillerinde ortak bir öğedir. Delphi üç tane var Kontrol Yapıları kod bloklarını tekrar tekrar yürüten: for, repeat... kadar ve... yapmak.

FOR döngüsü

Bir işlemi belirli sayıda tekrarlamamız gerektiğini varsayalım.

// 1,2,3,4,5 mesaj kutularını göster
var j: tam sayı;
başla
için j: = 1 için 5 yapmak
başla
ShowMessage ('Kutu:' + IntToStr (j));
son;
son;

Gerçekten sadece bir sayaç olan bir kontrol değişkeninin (j) değeri, bir for ifadesinin kaç kez çalıştığını belirler. İçin anahtar kelime bir sayaç ayarlar. Önceki örnekte, sayaç için başlangıç ​​değeri 1 olarak ayarlanmıştır. Bitiş değeri 5 olarak ayarlanmıştır.
For ifadesi çalışmaya başladığında sayaç değişkeni başlangıç ​​değerine ayarlanır. Delphi, sayaç değerinin bitiş değerinden küçük olup olmadığını kontrol eder. Değer daha büyükse, hiçbir şey yapılmaz (program yürütme for döngüsü kod bloğundan hemen sonra kod satırına atlar). Başlangıç ​​değeri bitiş değerinden küçükse, döngünün gövdesi yürütülür (burada: mesaj kutusu görüntülenir). Son olarak, Delphi sayaca 1 ekler ve işlemi yeniden başlatır.

instagram viewer

Bazen geriye doğru saymak gerekir. aşağı anahtar kelime, döngü her yürütüldüğünde bir sayaç değerinin bir azaltılması gerektiğini belirtir (bir dışında bir artış / azalma belirtmek mümkün değildir). Geriye doğru sayan bir for döngüsü örneği.

var j: tam sayı;
başla
için j: = 5 aşağı 1 yapmak
başla
ShowMessage ('T eksi' + IntToStr (j) + 'saniye');
son;
ShowMessage ('Yürütülen sıra için!');
son;

Not: Döngünün ortasındaki kontrol değişkeninin değerini asla değiştirmemeniz önemlidir. Bunu yapmanız hatalara neden olacaktır.

Döngüler için iç içe

Tablo veya ızgaradaki verileri doldurmak / görüntülemek istediğinizde, for döngüsü için başka bir döngü içine (yuvalama döngüleri) yazmak çok yararlıdır.

var k, j: tam sayı;
başla
// bu çift döngü 4x4 = 16 kez yürütülür
için k: = 1 için 4 yapmak
için j: = 4 aşağı 1 yapmak
ShowMessage ('Kutu:' + IntToStr (k) + ',' + IntToStr (j));
son;

Sonraki döngüler için iç içe yerleştirme kuralı basittir: dış döngü için bir sonraki ifadeyle karşılaşılmadan önce iç döngü (j sayacı) tamamlanmalıdır (k sayacı). Üçlü veya dörtlü iç içe döngüler veya daha fazlası olabilir.

Not: Gördüğünüz gibi genellikle başlangıç ​​ve bitiş anahtar kelimeleri kesinlikle gerekli değildir. Begin ve end kullanılmazsa, for ifadesini hemen takip eden ifade, döngü gövdesi olarak kabul edilir.

FOR-IN döngüsü

Delphi 2005 veya daha yeni bir sürüme sahipseniz, kapsayıcılar üzerinde "yeni" koleksiyon içi öğe için stil yineleme kullanabilirsiniz. Aşağıdaki örnek, dize ifadeleri üzerinde yineleme: karakter dizisindeki her karakter için karakterin 'a' veya 'e' veya 'i' olup olmadığını kontrol edin.

const
s = 'Delphi Programlama Hakkında';
var
c: karakter;
başla
için c içinde s yapmak
başla
Eğer c içinde [ 'A', 'e', ​​'i] sonra
başla
// bir şey yap
son;
son;
son;

WHILE ve REPEAT döngüleri

Bazen bir döngünün kaç kez dönmesi gerektiğini tam olarak bilemeyiz. Belirli bir hedefe ulaşıncaya kadar bir işlemi tekrarlamak istersek ne olur?

While-do döngüsü ve tekrarlama döngüsü arasındaki en önemli fark, bildirimi tekrarla her zaman en az bir kez yürütülür.

Delphi'de yinelenen (ve while) bir döngü türü yazdığımızda genel desen aşağıdaki gibidir:

tekrar et
başla
ifadeleri;
son;
a kadar koşul = doğru
süre koşul = doğru yapmak
başla
ifadeleri;
son;

Tekrarlama sonrasını kullanarak art arda 5 mesaj kutusu gösteren kod:

var
j: tam sayı;
başla
J: = 0;
tekrar et
başla
j: = j + 1;
ShowMessage ('Kutu:' + IntToStr (j));
son;
a kadar j> 5;
son;

Gördüğünüz gibi tekrar ifadesi, döngünün sonunda bir durumu değerlendirir (bu nedenle yineleme döngüsü en az bir kez kesin olarak yürütülür).

While ifadesi ise, döngünün başındaki bir durumu değerlendirir. Test en üstte yapıldığından, genellikle döngü işlenmeden önce durumun mantıklı olduğundan emin olmamız gerekir, eğer bu doğru değilse derleyici döngü koddan kaldırmaya karar verebilir.

var j: tam sayı;
başla
J: = 0;
süre j <5 yapmak
başla
j: = j + 1;
ShowMessage ('Kutu:' + IntToStr (j));
son;
son;

Ara ve Devam Et

Ara ve Devam prosedürleri tekrarlanan ifadelerin akışını kontrol etmek için kullanılabilir: Ara yordamı, denetim akışının bir for, while veya yineleme deyiminden çıkmasına ve bir sonraki saatte devam etmesine neden olur Beyan döngüyü takip etmek Beyan. Devam, kontrol akışının tekrar eden işlemin bir sonraki yinelemesine geçmesine izin verir.

instagram story viewer