If Not Abfrage falsch?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    If Not Abfrage falsch?

    Habe da mal ne Frage:

    Ich habe eine If Not Abfrage die Hier:

    VB.NET-Quellcode

    1. Sub Main()
    2. Dim e As Integer = Integer.Parse(Console.ReadLine())
    3. If Not e = 0 Or Not e > 20 Then
    4. Console.WriteLine("Bedingung erfüllt")
    5. Else
    6. Console.WriteLine("Bedingung nicht erfüllt")
    7. End If
    8. Main()
    9. End Sub


    Meine Frage nun: Warum ist die Beningung IMMER erfüllt. Egal ob ich 0 eingebe oder 10 oder 50 oder 10000
    Was mach ich falsch.

    Habs bis jetzt immer umgedreht:

    VB.NET-Quellcode

    1. Sub Main()
    2. Dim e As Integer = Integer.Parse(Console.ReadLine())
    3. If e = 0 Or e > 20 Then
    4. Console.WriteLine("Bedingung nicht erfüllt")
    5. Else
    6. Console.WriteLine("Bedingung erfüllt")
    7. End If
    8. Main()
    9. End Sub


    Das funktioniert so. Aber ich möchte einfach mal wissen warum es mit dem Not nicht funktioniert....

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

    Deine Bedingung sagt: Wenn e nicht gleich 0 ist oder e größer als 20 ist.
    Wenn e gleich 0 ist, dann ist zwar die erste Bedingung nicht erfüllt, jedoch die zweite, weil e nicht größer als 20 ist.

    Du willst, so weit ich das aus dem unteren Code lesen konnte, überprüfen, ob e entweder 0 oder größer als 20 ist.
    Setze die Bedingung einfach in Klammern und schreibe ein Not davor hin:

    VB.NET-Quellcode

    1. If Not (e = 0 OrElse e > 20) Then
    aaah, ich muss also die bedingungen in klammern setzen wenn ich mehr als 1 argument habe.
    Wieder was dazugelernt. Hab mich da immer gewundert.
    Das Orelse habe ich auch schon versucht. Daas ging bei meiner Code version auch nicht.
    Aber wenn ich Klammern drum Rum setze Funktioniert es.

    Vielen Dank. Thema Erledigt