For Each döngüsü problemi

sercan_
17-09-2008, 10:19   |  #1  
OP Üye
Teşekkür Sayısı: 0
66 mesaj
Kayıt Tarihi:Kayıt: Kas 2006

Selam. Kıyısından vb.net öğrenmeye başladım bir kitaptan, ancak döngüler konusunda bir yerde çok fena takıldım ve bir türlü içinden çıkamıyorum.

şimdi, bir formum var, üzerinde 5 tane textbox, 2 adet de command button var. amacım, for each ... next döngüsü kullanarak bir diziye beş farklı değişken atamak, sonra döngüden çıkarak dizideki değerleri textbox'lara yazdırmak istiyorum. İlk önce basitinden başlayıp sadece for ... next döngüsü kullandım, şu kodu ilk command button'a atayınca sonuç verdi:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim intDizi(4) As Integer
        Dim intIndis As Integer

        For intIndis = 0 To 4
            intDizi(intIndis) = intIndis + 5
        Next
        TextBox0.Text = intDizi(0)
        TextBox1.Text = intDizi(1)
        TextBox2.Text = intDizi(2)
        TextBox3.Text = intDizi(3)
        TextBox4.Text = intDizi(4)

bunu yapınca textbox'ların içi 5'ten 9'a kadar rakamlarla doluyor, herhangi bir sorun çıkmıyor.

Aynı işi for each ... next döngüsüyle yapmaya çalıştığımda nedense intIndis değişkeninin değeri her döngüde artmıyor. Kullandığım kod şu:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim intDizi(4) As Integer
        Dim intIndis As Integer

        For Each intIndis In intDizi
            intDizi(intIndis) = intIndis + 5

        Next
        TextBox0.Text = intDizi(0)
        TextBox1.Text = intDizi(1)
        TextBox2.Text = intDizi(2)
        TextBox3.Text = intDizi(3)
        TextBox4.Text = intDizi(4)

    End Sub

bu kodu kullandığımda sadece ilk textbox'ta 5 değerini görüyorum (intindis başlangıç değeri 0 + 5), intDizi değişkeninin diğer indislerine hiçbir değer atanmıyor. Zannediyorum bu da intIndis değişkeninin değerinin her döngüde artmamasından kaynaklanıyor.

Bayağı bir bakındım ama sorunu göremedim. Sizce nerde yanlış yapıyorum?

erayera
19-10-2008, 16:17   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
23 mesaj
Kayıt Tarihi:Kayıt: Mar 2007

For Each intIndis In intDizi
intDizi(intIndis) = intIndis + 5

Next => Next olan ne? onu belirtmemişsin.


Doğrusu: Next intIndis