LIst of string in 10er Schritten wiedergeben in der Konsole

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Visual_Prog.

    LIst of string in 10er Schritten wiedergeben in der Konsole

    hi also ich habe eine liste mit vokabeln in der konsole eingegeben (hier im code weggelassen).
    nun will ich sie in 10er schritten wiedergeben.
    IM code kann man sehen wie das gemeint ist, aber schlecht umgesetzt. DENN die Wiedergabe die ich gecodet habe, ist für ca 40 vokabeln. Aber was, wenn die vokabelliste 100 oder 200 Einträge enthält? Wie gebe ich das dem Code zu verstehen? Und wie schreibe ich das, ohne alles 10 vokabeln eine neue for-schleife zu erstellen?
    Würde mich über hilfe freuen.


    VB.NET-Quellcode

    1. dim vokabeln as new(list of string)
    2. Console.WriteLine("(T) Hier die Vokabeln aufgeteilt darstellen:")
    3. selection = Console.ReadLine.ToUpper()
    4. Select Case selection
    5. Case "T"
    6. While selection <> "**"
    7. For i = 0 To 10
    8. Console.WriteLine(vokabeln(i))
    9. Console.ReadLine()
    10. Next
    11. Console.WriteLine("Zum rausgehen ** drücken")
    12. selection = Console.ReadLine
    13. End While
    14. selection = "blöb"
    15. While selection <> "**"
    16. For i = 11 To 20
    17. Console.WriteLine(vokabeln(i))
    18. Console.ReadLine()
    19. Next
    20. Console.WriteLine("Zum rausgehen ** drücken")
    21. selection = Console.ReadLine
    22. End While
    23. selection = "blöb"
    24. While selection <> "**"
    25. For i = 21 To 30
    26. Console.WriteLine(vokabeln(i))
    27. Console.ReadLine()
    28. Next
    29. Console.WriteLine("Zum rausgehen ** drücken")
    30. selection = Console.ReadLine
    31. End While
    32. selection = "blöb"
    33. While selection <> "**"
    34. For i = 31 To vokabeln.Count - 1
    35. Console.WriteLine(vokabeln(i))
    36. Console.ReadLine()
    37. Next
    38. Console.WriteLine("Zum rausgehen ** drücken")
    39. selection = Console.ReadLine
    40. End While
    41. Console.ReadLine()
    42. Console.Clear()
    43. End Select
    44. End Select
    Ich hab's eher mit ner Do-Schleife

    VB.NET-Quellcode

    1. Dim StartIndex = 0
    2. Dim EndIndex = Math.Min(9, vokabeln.Count - 1)
    3. '...
    4. Do
    5. For i = StartIndex To EndIndex
    6. Console.WriteLine(vokabeln(i))
    7. Console.ReadLine()
    8. Next
    9. Console.WriteLine("Zum rausgehen ** drücken")
    10. If Console.ReadLine = "**" Then Exit Do
    11. StartIndex += 10
    12. EndIndex += 10
    13. Loop
    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.
    ok danke schon mal.
    möchte nun folgendes darin einbauen:
    die console soll vokabeln(0) bist vokabeln(10) durchlaufen, und die sollen sich loopen (man lernst also die ersten 10 vokabeln)
    dann soll man "rausgehen" mit ** und die konsole liest vokabeln(11) bis vokabeln (20)
    das soll sich dann weiter so hinziehen bis man die liste abgearbeitet hat
    im Moment looped sich die liste nämlich nicht alle 10 vokabeln leider

    Visual_Prog schrieb:

    die console soll vokabeln(0) bist vokabeln(10) durchlaufen, und die sollen sich loopen (man lernst also die ersten 10 vokabeln)
    Nein, vokabeln(0) bis vokabeln(10) sind 11 Vokabeln.

    Dann ist es ne doppelte Do-Schleife:

    VB.NET-Quellcode

    1. Do
    2. EndIndex = Math.Min(EndIndex, vokabeln.Count - 1)
    3. Do
    4. For i = StartIndex To EndIndex
    5. Console.WriteLine(vokabeln(i))
    6. Console.ReadLine()
    7. Next
    8. Console.WriteLine("Zum rausgehen ** drücken")
    9. If Console.ReadLine = "**" Then Exit Do
    10. Loop
    11. StartIndex += 10
    12. EndIndex += 10
    13. Loop Until StartIndex >= vokabeln.Count


    ##########

    Zeile#2 und #12 korrigiert, von vokabeln(i).Count auf vokabeln.Count
    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.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @Visual_Prog Mit 513 Posts im Forum bist Du nicht n der Lage, so eine kleine Schleife zu implementieren?
    Mach doch das ganze zunächst nur als Dummy mit Ausgabe des Index' und Drücken einer Taste, da siehst Du doch gleich, wo was klemmt.
    Ansonsten lerne zu debuggen: Debuggen, Fehler finden und beseitigen
    @VaporiZed In Deiner Zeile 12 musst Du den Endindex noch mal begrenzen, nicht nur vor der Schleife.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Öhm, nö. Nach der Schleife ist vor der Schleife. Ob ich EndIndex nun in Z#12 anpasse oder erst wieder in Z#2, ist egal. Ich werte es ja für den äußeren Schleifenabbruch nicht aus. Wenn EndIndex nach Z#12 irgendeinen vokabeln-inkompatiblen Wert hat, ist das doch egal. Oder ich seh nicht, wo das zum Problem werden könnte :huh:
    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.

    VaporiZed schrieb:

    Öhm, nö
    OK, ich hatte Post #2 im Auge.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!