Döngüler (For...Next / Do...Loop)

9 Tem 2007
130
0
VB'de For ... Next Döngü Yapısı

Programlama dillerinde döngüler genelde aynı işi birden fazla yaptırmak amacıyla işlemi istenilen miktarda tekrarlamak için kullanılır.Ya da belli aralıklarda birşey arattırmak için veya belli aralığa birşeyler eklemek için aynı işlemi tekrar tekrar yapmaktan kurtulmak için. Döngüler yapı olarak ikiye ayrılır. For....Next Ve Do...Loop biz bu derste For...Next yapısını inceleyeceğiz.
For..Next döngüsünde olay for ve next arasında istenilen miktarda tekrar edilerek döner.Kullanımı:
  • For x=a to b step Y
  • Komutlar
  • Next x
Burada sayacımız x oluyor. Bu x, a dan b ye kadar Y kadar atlayarak sayıyor. Mesela For x=1 to 10 step 1 gibi bir ifadeyle döngü 1 den 10 a kadar 10 kez donecektir. Yani yukarıdaki ifadede x=1 görecek next e kadar olan komutları yerine getirecek,x=2 görecek next e kadar olan komutları yerine getirecek, x=5 görecek next e kadar olan komutları yerine getirecek,dikkat! x=10 görecek next e kadar olan komutları yerine getirecekve döngüden çıkıp artık next in altındaki komutları yerine getirmeye başlıyacak. Eğer step 2 deseydik x 1,3,5,7,9 değerlerini olacaktı, eğer for x=0 to 10 step 2 deseydik x 0,2,4,6,8,10. Mesela 0 den 10 a kadar olan çift sayıların toplamını bu şekilde döngü içerisinde yapabiliriz.
Örnek: Sıfır ile 10 arasındaki çift sayıları toplayan çok küçük bir program yazacağız. Standart.exe olarak açtığınız programa bir tane command buton koyarak çifr tıklayın. Çift tıklayınca project penceresinden command penceresine geçecektir. Bu pencerede şu kodu yazın ve F5 e basarak progamı çalıştırıp command butonunu tıklayın. içinde 30 yazan bir Mesaj kutusu elde edeceksiniz.
Kod:
Private Sub Command1_Click()
For x = 0 To 10 Step 2
a = a + x
Next x
MsgBox a
End Sub


VB'de Do ... Loop Döngü Yapısı

Programlama dillerinde döngüler genelde aynı işi birden fazla yaptırmak amacıyla işlemi istenilen miktarda tekrarlamak için kullanılır.Ya da belli aralıklarda birşey arattırmak için veya belli aralığa birşeyler eklemek için aynı işlemi tekrar tekrar yapmaktan kurtulmak için. Döngüler yapı olarak ikiye ayrılır. For....Next Ve Do...Loop biz bu derste Do...Loop yapısını inceleyeceğiz.VB de Do...Loop sözcüklerini içeren dört ayrı tür mevcuttur.
1)Do While ... Loop Yapısı
Bu yapıda önce koşul kontrol edilir.Kontrol doğruysa programın akışı döngünün içine girer.Değilse döngüye 1 kez bile girilmeden program işleyişine devam edecektir. Şunu da unutmamk gerek, döngü while koşulu sağlandığı sürece işlevine devam edecektir. Yapısı;
  1. Do While Koşul
  2. Komutlar
  3. Loop
Örnek: Standart.exe olarak açtığınız bir forma bir buton yerleştirin.Butonu çift tıklayın Private Sub Command1.click ile başlayan paragrafi yazın. Sonra tekrar project penceresine geçin ve formun herhangi bir yerine çift tıklayın Private Sub Form Load ile başlayan paragrafı Yazın. Sonra F5 e basarak çalıştırın. Project penceresinden çift tıklatmamın sebebi,ilgili kısma ait private sub... end sub metinlerini vb nin otomatik yazması sebebiyledir.

Kod:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", 
	vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Do While a = vbOK
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", 
	vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Loop
End Sub

2)Do Until ... Loop
Bu yapıda da önce koşul kontrol edilir ancak while..loop yapısının tersine burada koşul doğru olmadığı sürece programın akışı döngünün içine girer,doğru olduğunda döngünün dışına çıkar.Yada koşul zaten doğruysa hiç döngünün içine girmez. Yapısı;
  1. Do Until Koşul
  2. Komutlar
  3. Loop
Örnek: Yukarıda While..Loop Yapısındaki yaptığımız programla aynı işe yarıyan programı until..loop ile yapacağız. Anlaşılması açısından daha yararlı olacağını düşündüm.Yapmanız gereken while ı silip until,vbok u silip vbcancel yapmanız.
Kod:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", 
	vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Do Until a = vbCancel
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", 
	vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Loop
End Sub
3)Do ... Loop While
İşte geldik koşulun altta kontrol eildiği yapıya.Bundan sonra anlatacağım dördüncü yapıda da böyle. Koşul altta kontrol ediliyor. Tahmin edeceğiniz gibi birinci yapıda anlattığım Do While ... Loop yapısından tek farkı while ın en üstte değil de en altta olmasıdır. Hal böyle olunca koşul sağlansa da sağlanmasa da döngü yukarıdan aşağıya en az bir kez akacaktır, sonra aşağıdaki while ile belirtilen koşul sağlandığında döngü yukarı çıkıp bir kez daha dönecektir,ta ki koşul sağlanmayıncaya dek.Sağlanmayınca programın akışı döngüden çıkar ve alt satırdan devam eder. Yani birinci ve ikinci yapıdan farkı,hiçbirşey olmasa bile döngü,koşul en aşağıda kontrol edildiği için en az bir kez icra eder.Yapısı;
  1. Do
  2. Komutlar
  3. Loop While Koşul
4)Do ... Loop Until
Bu da bir üstte anlattığım yapı gibi koşulu aşağıda kontrol ediyor. Yani koşul kontrol edilmesi için program döngünün içinde enaz bir kere akıyor. Sizin de tahmin ettiğiniz gibi ikinci yapıda anlattığım Do Until...Loop yapısından tek farkı az önce bahsettiğim gibi koşulun aşağıda kotrol edilmesi.Yapısı;
  1. Do
  2. Komutlar
  3. Loop Until Koşul
 
Ü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.