Delphi’de Döngüler ve Şart Yapıları

Cheat Console

Katılımcı Üye
1 Tem 2018
983
1
mesaj yazmyn
Öncelikle “Döngü nedir?” sorusuna cevap arayalım. Öncelikle söylemeliyim ki: Döngü programlamanın temelidir ve bir programcının en iyi yardımcısıdır. Sözlük anlamına baktığımız zaman: “Bir olayın birden fazla tekrarlanması” diye geçer. Fakat bizim şart yapılarımız olay tekrarlama için değil, zaten bazı delphi kaynakları bunları döngüler ile aynı başlık altına almayabiliyor ama ben tek başlıkta vereceğim.
Delphi-ile-Keygen-Yapimi_emresupcin.jpg

Bu döngülerimiz ve şart/koşul yapılarımız neler?

if – then (Basit şart yapısı)
case – of (if – then’in çok durumlu olanı)
while – do (şart gerçekleşmediği sürece çalışır)
repeat – until (şart gerçekleşene kadar çalışır)
for – to – do (integer bir değişkende belirli aralıklarla değer gezindirir)
for – in – do (for – to – do’nun string için kullanılanıdır, pratik kodlama için geliştirilmiştir.)
Evet, şimdi sayalım {1, 2, 3, 4, 5, 6} 6 tane döngümüz varmış. Şimdi sırasıyla bunları inceliyelim.

Öncelikle if – then ve case – of şart yapılarını ele alacağım.

if – then Şartın gerçekleşip gerçekleşmediğine bakar, ardırdan gereğini yapar :).

Genel yapısı şöyledir;


if ŞART then
//Şart gerçekleştiğinde burdaki kodlarımız çalışır.
Else
//Gerçekleşmediğinde ise burası çalışır.


if ŞART then
//Şart gerçekleştiğinde burdaki kodlarımız çalışır.
Else
//Gerçekleşmediğinde ise burası çalışır.



Burda şunu belirtmek isterim, eğer çalıştıracağımız komutlar 1 den fazlaysa begin – end kullanmalıyız. 1 tane ise yine kullanabiliriz, fakat kalabalığa gerek yoktur :). Tüm bunların yanında eğer başka komut yazmadan direk bir kod bloğunu(örneğin bir döngüyü) çalıştıracaksınız, Begin – end yine şart değildir :). Burada dikkat etmemiz gereken bir 2. nokta ise eğer else kullanacaksak, elseden önce “;” Noktalı Virgül operatörümüzü kullanamayız. Yani begin – end kullanmadan yazacaksak oradaki tek satırlık komutun sonuna konmaz, eğer kullanacaksak, “end;” değil “end” yazarız. Yani;



if ŞART then
Begin
//Şart gerçekleştiğinde burası çalışır…
End
Else
Begin
// Gerçekleşmediğinde ise burası çalışır.
End;



Bir diğer husus ise else kullanmak zorunda değiliz, eğer şart gerçekleşmediğinde yapılacak bir şey yoksa boşuna kalabalık etmeye gerek yoktur.

case – of: if then in çoklu kullanıma göre pratikleştirilmişidir, diyemeyiz. Çünkü yapı farklı, sadece integer veride çalışıyor J

Genel yapısı şöyledir;


case x of
0: showmessage(‘Ali’);
1: showmessage(‘Veli’);
2: showmessage(‘Kürşad’);
End;




Burdada yine aynı if – then deki gibi end in arkasından else kullanabiliriz. Yine 0: 1: 2: durumlarının karşısında bir satırdan fazla ise yapacaklarımız begin end aralığı kullanmak durumundayız…

Case – of olmasaydı ne yapardık?

Telaş yapmayın hemen if then bize yeter… Yukardaki örneği if – then ile yapacak olursak;


if x=0 then
showmessage(‘Ali’)
else if x=1 then
showmessage(‘Veli’)
else if x=2 then
showmessage(‘Kürşad’);




elbetteki karşılaştırdığınızda case of kolayınıza gelecek :D.

Şimdi de diğer grubumuza bakalım;

While ile başlayacağım, çünkü hepsinin temeli buna dayanır. Bu döngü hatalı kullanımda sonsuz döngüye girip programı ve belki de bilgisayarı kitleyebilir.(aşağıdaki örnek döngümüz de bunlardandır


While 1=1 do
Begin
//şart gerçekleştiği sürece buradaki kodlar çalışır.
End;


Şimdi gelelim bu döngüden türeyen diğer döngülere;

Repeat-until

Şart gerçekleşene kadar çalışır (dikkat etmemiz gereken nokta, bu döngü çalıştıktan sonra bakacaktır şarta yani şart gerçekleşse bile bir kez çalışacaktır.)


Repeat
///ipucu: bu döngüde begin-end kullanılmaz.
Until 1<>1;
Bunu While ile yapacak olursak;



//kodlar...
while 1=1 do
begin
//kodlar...
end;
For-to-do

Bir değişkeni verilen aralıkta gezindirerek kod çalıştırır.(integer ile çalışır)

For i:=0 to 10 do
Begin
//i 0dan 10 a kadar değer alırken her seferinde bu blok çalışır.
End;
Bunu While ile yapacak olursak;


i:=0;
while i<11 do
begin
//kodlar...
i:=i+1;
end;
For-in-do

Bu döngü tahminim Delphi 2007 de gelmiştir, Bir Listeyi (TStringList veya TStrings veya diğer mirasçılar.) verilen string değer içinde gezindirir.

?
1
2
3
4
For s in Memo1.Lines do
Begin
//s Memodaki her satırı tek tek alır ve bu blok çalışır.
End;




Bunu for ile yapacak olursak;


for i:=0 to Memo1.Lines.Count-1 do
begin
s:=Memo1.Lines;
//kodlar...
end;
bunu while ile yapacak olursak;


i:=0;
while i<Memo1.Lines.Count do
begin
s:=Memo1.Lines;
//kodlar...
i:=i+1;
end;

alıntıdır:Delphi’de Döngüler ve Şart Yapıları | Ahmet Kürşat ÇAKIR
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.