If Abfrage mit größer kleiner

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    If Abfrage mit größer kleiner

    Hallo zusammen,
    ich habe einfach irgendein Denkfehler und komm nicht drauf.
    Hier mein Code:

    VB.NET-Quellcode

    1. Case Keys.Enter : If tb_Länge.Text <= "10" Then
    2. tb_länge_Bereich.Text = "unter 10"
    3. End If
    4. If tb_Länge.Text <= "20" And tb_Länge.Text >= "10" Then
    5. tb_länge_Bereich.Text = "unter 20"
    6. End If
    7. If tb_Länge.Text <= "30" And tb_Länge.Text >= "20" Then
    8. tb_länge_Bereich.Text = "unter 30"
    9. End If
    10. If tb_Länge.Text <= "40" And tb_Länge.Text >= "30" Then
    11. tb_länge_Bereich.Text = "unter 40"
    12. End If
    13. If tb_Länge.Text <= "50" And tb_Länge.Text >= "40" Then
    14. tb_länge_Bereich.Text = "unter 50"
    15. End If
    16. If tb_Länge.Text <= "60" And tb_Länge.Text >= "50" Then
    17. tb_länge_Bereich.Text = "unter 60"
    18. End If
    19. If tb_Länge.Text <= "70" And tb_Länge.Text >= "60" Then
    20. tb_länge_Bereich.Text = "unter 70"
    21. End If
    22. If tb_Länge.Text <= "80" And tb_Länge.Text >= "70" Then
    23. tb_länge_Bereich.Text = "unter 80"
    24. End If
    25. If tb_Länge.Text <= "90" And tb_Länge.Text >= "80" Then
    26. tb_länge_Bereich.Text = "unter 90"
    27. End If
    28. If tb_Länge.Text <= "100" And tb_Länge.Text >= "90" Then
    29. tb_länge_Bereich.Text = "unter 100"
    30. End If
    31. If tb_Länge.Text >= "100" Then
    32. tb_länge_Bereich.Text = "über 100"
    33. End If


    Er zeiugt mir immer "über 100" an.
    Egal was ich ein gebe.
    Ich will aber
    wenn ich 53 eingebe dass er unter 60 einträgt,
    wenn ich 66 eingebe dass er unter 70 einträgt,
    wenn ich 105 eingebe dass er über 100 einträgt,
    wenn ich 99 eingebe dass er unter 100 einträgt.

    Irgendwie komm ich grad nicht drauf was ich ändern muss.

    Sorry aber ich bnitte um Hilfe.
    Vielen Dank
    Gruß
    Fabi

    Edit by der_Kurt:
    * Topic verschoben *

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

    In deinem Fall so:

    VB.NET-Quellcode

    1. Select Case Integer.Parse(tb_Länge.Text)
    2. Case < 10
    3. Case < 20
    4. 'usw
    5. Case Else
    6. End Select

    Für alle abfragen ein, die du haben willst und gib dann den entsprechenden Text aus.
    Hier findest du die komplette Dokumentation zu SelectCase.
    Hallo,
    hab jetzt mal mein Code funktionsfähig gemacht.
    Geht jetzt.
    Werde das mit dem Case noch einbauen.

    Vielen Dank Gruß
    Fabi

    VB.NET-Quellcode

    1. Case Keys.Enter
    2. Dim VLänge As Integer = tb_Länge.Text
    3. If VLänge <= "10" Then
    4. tb_länge_Bereich.Text = "unter 10"
    5. End If
    6. If VLänge <= "20" And VLänge >= "10" Then
    7. tb_länge_Bereich.Text = "unter 20"
    8. End If
    9. If VLänge <= "30" And VLänge >= "20" Then
    10. tb_länge_Bereich.Text = "unter 30"
    11. End If
    12. If VLänge <= "40" And VLänge >= "30" Then
    13. tb_länge_Bereich.Text = "unter 40"
    14. End If
    15. If VLänge <= "50" And VLänge >= "40" Then
    16. tb_länge_Bereich.Text = "unter 50"
    17. End If
    18. If VLänge <= "60" And VLänge >= "50" Then
    19. tb_länge_Bereich.Text = "unter 60"
    20. End If
    21. If VLänge <= "70" And VLänge >= "60" Then
    22. tb_länge_Bereich.Text = "unter 70"
    23. End If
    24. If VLänge <= "80" And VLänge >= "70" Then
    25. tb_länge_Bereich.Text = "unter 80"
    26. End If
    27. If VLänge <= "90" And VLänge >= "80" Then
    28. tb_länge_Bereich.Text = "unter 90"
    29. End If
    30. If VLänge <= "100" And VLänge >= "90" Then
    31. tb_länge_Bereich.Text = "unter 100"
    32. End If
    33. If VLänge >= "100" Then
    34. tb_länge_Bereich.Text = "über 100"
    35. End If
    @Fabiii321
    So wäre es besser ...

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    2. If e.KeyCode = Keys.Enter Then
    3. Dim int As Integer = 0
    4. If Integer.TryParse(TextBox1.Text, int) Then
    5. For i As Integer = 0 To 100 Step 10
    6. If int > i Then
    7. TextBox1.Text = "über " & i
    8. End If
    9. Next
    10. End If
    11. End If
    12. End Sub
    An deinem Code lässt sich gleich mehreres bemängeln:
    1. Du hast Option Strict Off, weshalb du Strings mit Integern vergleichen kannst. Das stellst du am besten sofort an.
    2. Du verwendest And an einer Stelle, für die es nicht gemacht ist. Siehe dazu diesen Thread.
    3. Du machst es dir unnötig schwer, indem du If verwendest und dann noch nicht mal ein ElseIf mit reinbringst.
    Zur Information: Ein Integer ist eine Ganzzahl, die wird einfach als Zahl eingegeben 65464, 76, 0 usw. Ein String ist eine Zeichenfolge diese wird mit "" deklariert "Hallo", "63" usw. Das sind zwei vollkommen unterschiedliche Typen
    Hallo,
    habs jetzt so geändert:

    VB.NET-Quellcode

    1. Select Case Integer.Parse(tb_Länge.Text)
    2. Case Is <= 10
    3. tb_länge_Bereich.Text = "0-10"
    4. Case Is <= 20
    5. tb_länge_Bereich.Text = "10-20"
    6. Case Is <= 30
    7. tb_länge_Bereich.Text = "20-30"
    8. Case Is <= 40
    9. tb_länge_Bereich.Text = "30-40"
    10. Case Is <= 50
    11. tb_länge_Bereich.Text = "40-50"
    12. Case Is <= 60
    13. tb_länge_Bereich.Text = "50-60"
    14. Case Is <= 70
    15. tb_länge_Bereich.Text = "60-70"
    16. Case Is <= 80
    17. tb_länge_Bereich.Text = "70-80"
    18. Case Is <= 90
    19. tb_länge_Bereich.Text = "80-90"
    20. Case Is <= 100
    21. tb_länge_Bereich.Text = "90-100"
    22. Case Is > 100
    23. tb_länge_Bereich.Text = "100-∞"
    24. End Select


    Vielen Dank
    Gruß
    Fabi
    Folgende Vorschläge noch hintendran: Die Verwendung von Tryparse. Falls das Parsen nicht funktioniert, weil in der Textbox was anderes als eine Zahl drin ist, ... is nicht so günstig.
    Außerdem: Select Case hat auch das "To"-Schlüsselwort.

    VB.NET-Quellcode

    1. Dim int_länge As Integer
    2. If Integer.TryParse(tb_länge_bereich, int_länge) Then
    3. Select case int_länge
    4. Case 0 To 10
    5. tb_länge_bereich.Text = "0-10"
    6. Case 10 To 20
    7. tb_länge_bereich.Text = "10-20"
    8. Case 20 tp 30
    9. tb_länge_bereich.Text = "20-30"
    10. '...
    11. Case Else
    12. tb_länge_bereich.Text = "was anderes"
    13. End Select
    14. Else
    15. tb_länge_bereich.Text = "KEINE GÜLTIGE ZAHL GEFUNDEN"
    16. End If

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