Ö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.
Bu döngülerimiz ve şart/koşul yapılarımız neler?
if then (Basit şart yapısı)
case of (if thenin ç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 donun 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 .
Ş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
Bu döngülerimiz ve şart/koşul yapılarımız neler?
if then (Basit şart yapısı)
case of (if thenin ç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 donun 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 .
Ş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: