Counter für: for each in list of // Verrückte Ergebnisse

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von nogood.

    Counter für: for each in list of // Verrückte Ergebnisse

    Moin,

    ich sitze verwundert vor dem PC aufgrund von:

    VB.NET-Quellcode

    1. Dim i as int=0
    2. Private Sub FrmEq_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. ...
    4. lstOfUcEq = New List(Of UcEq) From {
    5. UcEq1, UcEq2, UcEq3, UcEq4, UcEq5, UcEq6, UcEq7, UcEq8
    6. }
    7. ...
    8. For Each Uc As UcEq In lstOfUcEq
    9. Uc.LbUcEqHz.Text = i.tostring
    10. i += i
    11. Next
    12. End Sub


    Das Ergebnis das ich erwarte ist 0,1,2,..7.

    Die Zahlen die ich bekomme sind 9,18,36,72,144,288,576,1152
    also 9 und dann immer x2.

    Die Private Sub FrmEq_Load wird nur einmal durchlaufen. Was hab ich da verbrochen? Oder was sollte ich tun, um das gewünschte zu erreichen. Ich verändere bei ... nichts an den Variablen i und List of.

    Ich habe mir mit Messagebox.show in der For Schleife den Namen der Uc`s anzeigen lassen, dass war alles i.O. Uc1, ..., Uc8 die Zahlen für i waren wie oben geschrieben.
    Könnte es damit zu tun haben, dass Uc Usercontrolls sind

    *Unnötigen Zusatz im Titel abgeändert* ~NoFear23m
    codewars.com Rank: 4 kyu

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Nofear23m“ ()

    i += i; verdoppelt den i-Wert bei jedem Schleifendurchgang. War i += 1 gemeint? Welchen Startwert hat i? Es steht zwar Dim i as int = 0, aber das ist syntaktisch falsch, also wohl von Dir schnell hier hingeschrieben. Daher prüfe vor Schleifenbeginn, welchen Wert i wirklich hat.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.