Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Access Dersanesi (http://www.excel.web.tr/forumdisplay.php?f=171)
-   -   Döngüler | For - Next (http://www.excel.web.tr/showthread.php?t=100653)

Taruz 26-05-2011 12:43

Döngüler | For - Next
 
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 ;) ) 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:


Kod:


For sayac = 1 To 3
Metin1 = Metin1 + sayac
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..:


Kod:


For sayac = 1 To 20 Step 4
Metin1 = Metin1 + sayac
MsgBox Metin1
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..:

Kod:

For sayac = 1 To 5
If Metin2 = 3 Then   
Metin1 = Metin1 + sayac
End If
Metin2 = sayac
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..:


http://www.access-sql.com/resim/fornext.jpg

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


Kod:

For sayac1 = 1 To 3
Metin1 = Metin1 + sayac1   
For sayac2 = 1 To 2   
Metin2 = Metin2 + sayac2   
Next sayac2
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.



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 konuları iç içe sokmayalım.. Daha sonra, farklı bir konuda artık..

Taruz.. 2011

Milady Meriç 25-01-2012 23:25

Sayın Taruz, teşekkürler.


Saat 07:49

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.