Bazı durumlarda döngünüzün kaç kere işleyeceğini tahmin edemeyebilirsiniz. Yani döngünüz bir şarta (veya birden çok) bağlı olarak işleyecektir. Dolayısıyla bu işlemi “for” döngüsüyle çözemeyeceksiniz. Döngünüzün çalışma sayısı bir şarta bağlı olacaksa çözüm yollarından bir tanesi “Repeat-Until” döngüsüdür. Belirteceğiniz şart sağlanmadığı sürece döngünüz işlemeye devam edecektir.
repeat
//Döngü içerisinde işletilecek kodlar buraya yazılacak.
Until ilk>son; //şart sağlanırsa bitir
Aşağıdaki örnek projede, daha önce “for” döngüsüyle çözmüş olduğumuz girilen iki sayı arasındaki sayıların toplamını hesaplayan projenin “Repeat – Until” döngüsüyle çözülmüş hali verilmiştir.

Şimdi de yine daha önceden “for” ile yazdığımız fakat iyi çözüm olmadığını belirttiğimiz girilen iki sayı arasındaki çift olanları toplayan programın kodlarını verelim .

Bu arada tekrar hatırlatalım. Inc() fonksiyonunu kullanabilmeniz için, fonksiyona giren iki değerinde tam sayı tipli değişken olması gerekmektedir. Aksi takdirde “toplam:=toplam+ilk” yazmalısınız.
Şimdi de programı çalıştırdığımız anda bize şifre soracak, eğer şifreyi bilemezsek yeniden girmemizi isteyecek pencereyle karşılaşacağımız bir program yapalım.
Şifre isteme işlemlerinin yapılacağı en uygun Event “FormCreate” yordamıdır. Bu yüzden kodumuzun tamamını bu procedure’e yazacağız. Şifre isteme işlemini döngü içerisinde yapacağımız için, şifreyi doğru girene kadar arka arkaya şifre penceresi ile karşılaşacaksınız. Bahsettiğimiz bu tür uygulamaları, şarta bağlı olarak işletilebilen döngülerle çözmek çok uygun bir çözüm yolu olacaktır.
Şifre uygulaması için aşağıdaki kodları projenizin gösterilen yordamlarına ekleyiniz.

Şimdi de uygulamamızı biraz daha geliştirerek, kullanıcının sadece üç kere şifre girebileceği, üç hakkında da bilemezse programın kapatılacağı bir hale dönüştürelim.

Döngü içerisinde kullanılan “Application.Terminate” komut satırı programı
kapatmak için kullanılmaktadır. Yanlız burada ufak bir incelik var. Delphi “Application.Terminate” komutunu gördüğü zaman programı bitirir ama döngü tamamlandıktan sonra. Bu yüzden “exit” komutunu eklemezseniz, garip durumlarla karşılaşabilirsiniz (Döngü içerisinde Application.Terminate komutunu kullanırkan dikkat etmelisiniz).
Kaynak
repeat
//Döngü içerisinde işletilecek kodlar buraya yazılacak.
Until ilk>son; //şart sağlanırsa bitir
Aşağıdaki örnek projede, daha önce “for” döngüsüyle çözmüş olduğumuz girilen iki sayı arasındaki sayıların toplamını hesaplayan projenin “Repeat – Until” döngüsüyle çözülmüş hali verilmiştir.
Şimdi de yine daha önceden “for” ile yazdığımız fakat iyi çözüm olmadığını belirttiğimiz girilen iki sayı arasındaki çift olanları toplayan programın kodlarını verelim .
Bu arada tekrar hatırlatalım. Inc() fonksiyonunu kullanabilmeniz için, fonksiyona giren iki değerinde tam sayı tipli değişken olması gerekmektedir. Aksi takdirde “toplam:=toplam+ilk” yazmalısınız.
Şimdi de programı çalıştırdığımız anda bize şifre soracak, eğer şifreyi bilemezsek yeniden girmemizi isteyecek pencereyle karşılaşacağımız bir program yapalım.
Şifre isteme işlemlerinin yapılacağı en uygun Event “FormCreate” yordamıdır. Bu yüzden kodumuzun tamamını bu procedure’e yazacağız. Şifre isteme işlemini döngü içerisinde yapacağımız için, şifreyi doğru girene kadar arka arkaya şifre penceresi ile karşılaşacaksınız. Bahsettiğimiz bu tür uygulamaları, şarta bağlı olarak işletilebilen döngülerle çözmek çok uygun bir çözüm yolu olacaktır.
Şifre uygulaması için aşağıdaki kodları projenizin gösterilen yordamlarına ekleyiniz.
Şimdi de uygulamamızı biraz daha geliştirerek, kullanıcının sadece üç kere şifre girebileceği, üç hakkında da bilemezse programın kapatılacağı bir hale dönüştürelim.
Döngü içerisinde kullanılan “Application.Terminate” komut satırı programı
kapatmak için kullanılmaktadır. Yanlız burada ufak bir incelik var. Delphi “Application.Terminate” komutunu gördüğü zaman programı bitirir ama döngü tamamlandıktan sonra. Bu yüzden “exit” komutunu eklemezseniz, garip durumlarla karşılaşabilirsiniz (Döngü içerisinde Application.Terminate komutunu kullanırkan dikkat etmelisiniz).
Kaynak