for to ve do while

1 2
09/11/2010, 13:53

accessman

iyi günler
bunlar gibi döngülerde en hızlı olan hangisidir
veyada fark hız yönüylr fark yokmudur
en hızlı döngü hangisidir
mesala 1 den 1 000 000 kadar saydırsak hangisi önce bitirir
10/11/2010, 13:07

accessman

acaba mı ki ne ?
10/11/2010, 14:09

Seruz

(09/11/2010, 13:53)accessman yazdı: iyi günler
bunlar gibi döngülerde en hızlı olan hangisidir
veyada fark hız yönüylr fark yokmudur
en hızlı döngü hangisidir
mesala 1 den 1 000 000 kadar saydırsak hangisi önce bitirir

Döngüler arasında hız farkı olduğunu sanmıyorum, olsa bile milisaniyeler seviyesinde olur.
Döngülerin kullanımı genelde hız faktörüne değil, ihtiyaca veya duruma göre belirlenir.
10/11/2010, 17:10

accessman

teşekkürler seruz
11/11/2010, 01:27

Kur@l

Sayın Seruz Hocamın söylediklerine ilave olarak;
For Next döngüsü kendi içinde bir şart içermediğinden aynı komutların işletildiği döngülerde hızlı sayım yapabilir.
Ancak diğer döngü türlerinde şart olmasından dolayı daha kullanışlı sonuçlar ortaya çıkmaktadır.

Aşağıda döngülerle ilgili genel bilgiler vardır.
Kolay gelsin.

Genel olarak döngü deyimleri, bir işlem(ler) grubunu çok sayıda tekrarlamak istediğimiz zaman kullanacağımız deyimlerdir. Böylece bu deyimler sayesinde kod tekrarı yapmamış olacağız bunun bize bir çok faydası vardır. Örneğin, bu sayede programı gereksiz kodlarlar şişirmemiş oluruz bu bize hata yakalama da ve programa hakim olmamamızda büyük kolaylık sağlar isterseniz konuyu fazla uzatmadan bu deyimler nelermiş incelemeye başlayalım.

For ... Next Döngüsü

Bu döngü belirli bir ifadeyi istenilen sayıda tekrar etmeye yarar

For sayaç = başlangıç To bitiş [Step adım_sayısı]
[ifadeler]
[Exit For]
[ifadeler]

Next [sayaç]

1.) Private Sub Form_Activate()
2.) Form1.Caption = "Döngü Komutları"

3.) Dim Sayac AsInteger

4.) For Sayac = 1 To 20
5.) Print "Merhaba Dünya"
6.) Next Sayac

End Sub

Yukarda ki örnekte ekrana 20 tane "Merhaba Dünya" yazdık ve bunuda 5-6 satır kod ile başardık burada da döngü deyimlerinin bizi nasıl bir zahmetten kurtardığını rahatça görebiliriz bu arada kodların başında ki rakamları onları açıklarken kolaylık olsun diye yazdım bunlarda nerden çıktı diyerek kafanızı karıştırmasın. Programcığımızın 1. satırında bize Private Sub Form_Activate() ile End Sub arasında ki kod bloğunun form aktif olduğu anda işleme tabi tutulacağını anlatmaktadır 2. satırda ise Form1 isimli formun başlığının (Caption) "Döngü Komutları" olarak atandığını bildirmektedir. 3.satırda ise "sayac" isimli integer sayı tipinde bir değişken tanımlayarak bu tanımlanmış değişken ile 4. satırda 1 den 20 ye kadar bir döngü oluşturuyoruz. 5. satır ise bizim kod bloğumuzu oluşturuyor dolayısıyla da göngü içinde 20 kere tekrarlanıyor ve 6. satırdaki "Next sayac" ile de kod bloğumuzun sonlandığı noktayı belirtiyoruz.

Bu döngü komutuna bir örnek daha vererek bu kısmı geçeceğim.
Private Sub Command1_Click()
Dim Sayi As Integer
Dim Sayac As Byte, SayiMiktari As Byte

SayiMiktari = Val(InputBox("Sayi Miktarını Giriniz"))
Sayi = 0
For Sayac = 1 To SayiMiktari
Sayi = Sayi + Val(InputBox(Sayac & ". sayıyı giriniz"))
Next Sayac
MsgBox "Girilen " & SayiMiktari & " tane sayının toplamı=" & Sayi

End Sub
Yukarda ki örneğimiz belirlenen belli bir sayıda ki sayıyı toplayarak bize sonucu bir mesaj kutusunda görüntüler.Eğer bu örneği VB derleyerek çalıştırırsanız akılda kalıcı olması bakımından daha faydalı olacaktır yalnız burada "Val" fonksiyonundan bahsetmek istiyorum bu fonksiyon string tipindeki verileri sayısal veriye çevirmek için kullanılır eğer bu fonksiyonu kullanmasaydık örneğin programınız bize 1+2+3 ün sonucunu 6 yerine 123 olarak verirdi bu küçük hatırlatmadan sonra bir sonra ki döngü deyimine geçiyorum

Do ... Loop Döngüsü

Do [{While | Until} Koşul]
[Komutlar]
[Exit Do]
[Komutlar]
Loop

yada diğer kullanım sekli ile;

Do
[Komutlar]
[Exit Do]
[Komutlar]
Loop [{While | Until} Koşul]
Bu döngü bir komut bloğunu koşul doğru ise yada koşul doğru olana kadar tekrarlanmasını sağlar. Burada dikkat edilmesi gereken önemli bir nokta var o ise koşul doğru olduğu sürece döngünün sonsuz bir çevrim içinde olacağıdır. Bu küçük hatırlatmadan sonra döngümüze geri dönelim Do ... Loop çevriminin yukarıdan da anlaşılacağı üzerine iki kullanım şekli vardır bunlar birinde koşul hemen döngünün başında verilerek doğruluğu veya yanlışlığı kontrol edildikten sonra koutların icrasına karar verilir ikincisinde ise koşul döngünün sonunda verilerek koşulun değeri ne olursa olsun komutların bir kere icra etmesi sağlanır. Bunun dışında birde döngü ile birlikte While yada Until in kullanılması var While kullandığımız zaman komutlar koşul doğru iken yerine getirilir Until de ise koşul doğru olana kadar yani koşul yanlışsa yerine getirilir. Şimdi bu anlattıklarımız bir kaç örnek ile pekiştirelim.


Private Sub Command1_Click()
Dim Kontrol As Boolean, Sayac As Byte

Kontrol = True
Sayac = 0 ' Değişken başlangıç durumuna getiriliyor.

Do ' Dışarda ki Döngü.
Do While Sayac < 20 ' İçteki döngü.
Sayac = Sayac + 1 ' Sayaç her döngüde 1 arttırılıyor.
If Sayac = 10 Then' Eğer koşul doğru ise.
Kontrol = False' Kontrol değişkeni False olarak atanıyor.
Exit Do ' Ve içteki döngüden çıkılıyor.
End If
Loop
Loop Until Kontrol = False ' Kontol False olana kadar
End Sub
Yukarda ki örnekte içteki döngü 10 kere dıştaki döngü ise 1 kere işleme tabi tutulacaktır programcığımızdaki "Exit Do" komutu ise Do ... Loop döngüsünden çıkmamıza yarar bu noktayı da belirtikten sonra size kalan bu kısmı dikkatlice inceleyip anlamaya çalışmaktır

While ... Wend Döngüsü

While Koşul
[Komutlar]

Wend
Do ... Loop döngüsünün bir türevi olarak düşünebiliriz. Bu döngüde koşul doğru olduğu sürece While ... Wend arasındaki komutlar icra edilir ve tekrar koşul kontrol edilir bu işlem koşul yanlış olana kadar devam eder

Private Sub Command1_Click()
Dim Sayac AsByte
Sayac = 0

While Sayac < 10
Sayac = Sayac + 1
Wend
MsgBox Sayac

End Sub

Yukarda ki örnekte command1 butonuna tıkladığımıza While ... Wend Döngüsü Sayac ın 10 dan küçük olduğu sürece Sayac değişkenini bir artıracaktır Sayac 10 olduğunda ise While Sayac < 10 koşulu sağlanmayacağı içn döngüden çıkılacaktır ve MsgBox Sayac kodu işleme tabi tutulacaktır sayac değişkenide 10 olduğu için mesaj kutusunda 10 görüntülenecektir.

Alıntıdır
11/11/2010, 02:06

okileturc

Detaylı bilgi için tşk hocam, arşivime ekledim
1 2