DÖNGÜLER | FOR - NEXT
#1
access-sql-10 
GİRİŞ

Bu kısımda size döngülerden bahsedeceğim.. Döngüler amaç olarak, komutların tekrarlatılmasına yarar.. Bir işlemi birden fazla ve aynı anda yaptırtmak istiyorsak döngü hazırlamalıyız..

Döngüleri iki temel başlık altında toplayabiliriz..:

  1. Sayaçlı Döngüler ( For – Next )
  2. Koşullu Döngüler ( Do while – Loop, While – End))



Merhaba arkadaşlar..

Access ile uygulama geliştirirken ihtiyaç duyduğumuz en önemli yapılardandır döngüler.. Döngü hazırlamak zor gibi görünse de temel yapıyı öğrendikten sonra çok kolay ve de keyifli (hele sonucu aldıktan sonra Wink ) olduğunu keşfedebilirsiniz.. En sık kullanılan döngü tipi de For Next yapısıdır..

For Next, bir grup deyimi belirlediğimiz sayıda çalıştırararak, bir döngü oluşturur.

Yapı bu şekilde..:

For Sayaç = Başlangıç Değeri To Bitiş Değeri
Komutlar
Next Sayaç

Örnekleyelim hemen..

Formunuzun üzerine, varsayılan değeri 0 (sıfır) olan bir adet metin kutusu (metin1) ve bir komut düğmesi (komut1) yerleştirin..
Düğmenin tıklandığında olayına bu yapıyı kullanalım şimdi:


Visual Basic
  1. For sayac = 1 To 3
  2. Metin1 = Metin1 + sayac
  3. Next sayac



Çalıştırdığınızda metin1 kutusunda 6 değerini göreceksiniz..

Yukarıdaki yapıyı dilimize çevirirsek..:
metin1'deki değere sayaç değerini ekle. Ve bunu 3 sefer yap. Her seferde de sayaç değeri artsın.


0+1=1
1+2=3
3+3=6


İşlemdeki ilk rakamlar metin1'in aldığı değerler.. Toplanan rakam ise sayaç değeri..

Üsteki yapıda sayaç her döngüde bir artarak gider.. Bu değer varsayılandır. Ama biz bunu değiştirebiliriz.

Şimdi komutla diyelim ki:

metin1'deki değere sayaç değerini ekle. Ama sayaç değeri her seferde dörder artsın. Taa ki sayaç 20 ye gelene kadar..:

Visual Basic
  1. For sayac = 1 To 20 Step 4
  2. Metin1 = Metin1 + sayac
  3. MsgBox Metin1
  4. Next



Gördüğünüz gibi Step (adım) kısmında sayaç artışını belirledik..

Olayın aritmetiği de bu şekilde..:

0+1=1
1+5=6
6+9=15
15+13=28
28+17=45


Step kısmında -(eksi) değer kullanabiliriz.. Genelde sayaç başlangıç değeri, bitiş değerinden küçük olmalıdır.. Ama Step değerini eksi vereceksek durum değişir..

Şimdi döngümüze bir koşul koyalım.. Forma metin1 ile aynı özellikte bir metin kutusu daha yerleştirelim (metin2).

Yeni döngümüz bu olsun..:

Visual Basic
  1. For sayac = 1 To 5
  2. If Metin2 = 3 Then
  3. Metin1 = Metin1 + sayac
  4. End If
  5. Metin2 = sayac
  6. Next




Anlamı..:

metin2'deki değere sayaç değerini ekle. Bu işlemi beş defa yap. Her defasında metin2 ye de bak bakalım.. Eğer değeri 3 ise metin1 e sayaç değerini ekle.

Gördüğünüz gibi döngü içerisinde koşul kullandık.. Basitçe şema çıkartalım..:

[Resim: fornext.jpg]

Bir döngü içerisinde başka bir döngü de çalıştırabiliriz.:


Visual Basic
  1. For sayac1 = 1 To 3
  2. Metin1 = Metin1 + sayac1
  3.  
  4. For sayac2 = 1 To 2
  5.  
  6. Metin2 = Metin2 + sayac2
  7.  
  8. Next sayac2
  9.  
  10. Next sayac1 'ilk döngünün Next bölümü son bölümde yazılmalıdır..




Yukarıda dedik ki..:

metin1'deki değere sayaç1 değerini ekle. Bu işlemi üç defa yap. Her defasında diğer döngüyü de çalıştır ve sonuçlandır.


[Resim: fornext2.jpg]

Birden fazla iç içe döngü kurabilirsiniz..

Denemeler yaparken yanlışlıkla sonsuz bir döngü kurarsanız sonlandırmak için CTRL + BREAK tuşlarını kullanın..

Örneklerde ben toplama işlemlerini kullandım.. Siz buna şartlanmayın.. Döngü içerisinde bir çok komut ve eylem gerçekleştirebilirsiniz.. Bu tamamen ihtiyacınıza bağlı..

Hazır bu konuya ısınmışken For Next'in kuzeni For Each döngüsünden de bahsetmek lazımdı ama geç oldu.. Daha sonra, farklı bir konuda artık.. Wink

Taruz.. 2011



  Alıntı
Bu mesajı beğenenler:
#2
Taruz bey elinize sağlık çok güzel bir anlatım olmuş. Devamını bekleriz. Kolay gelsin.



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Osman Taruz;

Gününüz aydınlık, neşeniz sağlığınız yerinde ve her şey sevdiklerinizle birlikte gönlünüzce olsun..

Emek, katkılarınız ve paylaşımlarınızı görünce şaşırıyorum. Bir insan bu kadar mı sevgi ve heyecan dolu olur! Eğitici olarak bizlere ışık olur! Bilgili, deneyimli, zeki ve alçak gönüllü olabilir!

İyi ki varsınız..

En içten selam, sevgi ve saygılarımı sunarım..



  Alıntı
Bu mesajı beğenenler:
#4
Taruz Hocam,
Konuları çok güzel anlatıyorsunuz.
Bunları Konu anlatımı gibi bir başlıkta toplmak daha iyimi olur.
Teşekkür ederiz.
Saygılarımla,



  Alıntı
Bu mesajı beğenenler:
#5
Teşekkür ederim dostlar..

Metin bey bilmiyorum ki.. Şimdilik böyle kalsın isterseniz.. Konu çeşitliliğini arttırabilirsem dediğiniz gibi bir başlıkta toplayabiliriz..

Selamlar..



  Alıntı
Bu mesajı beğenenler:
#6

Taruz Hocam
Emek, katkılarınız ve paylaşımlarınız için teşekkürler.




  Alıntı
Bu mesajı beğenenler:


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi