Alles anzeigenDas ganze nennt sich short-curcuit evaluation und ist eine wichtige Form um die Performance zu beschleunigung.
Der Ansatz ist simpel: Wenn schon die erste Seite eines Or-Operators wahr ist, dann braucht man nicht mehr die rechte Seite ausführen. Im Endeffekt wird der Gesamtausdruck nämlich immer wahr.Genauso bei "And": Wenn schon die linke Seite falsch ist, kann die Gesamtbedingung nicht mehr wahr werden - also braucht man die rechte Seite auch nicht mehr zu prüfen.
Da wird auch schnell klar, dass deine Aussage:
so nicht stimmt. Bei And werden die restlichen Bedingungen nicht mehr beachtet, wenn die erste Bedingung nicht erfüllt ist.
Will man dies umgehen kann man halt kein And oder Or verwenden.
Ein Hack wäre BitAnd oder BitOr zu verwenden. Die machen streng genommen etwas anderes, da aber alle diese Bedingungen nur 0 oder 1 zurückgeben kommt man damit dennoch zum selben Ergebnis:
Oh ok, dann muss ich mal meine Bedingungen überdenken, vlt. hab ich auch nen Logikfehler drin!