Geschichte der Frage
Der If...Else Operator ist ein grundlegendes Steuerungswerkzeug, das in allen Versionen von Visual Basic vorhanden ist, beginnend mit der ersten Veröffentlichung. Seine Entwicklung ging von einfacher linearer Verzweigung zu einer erweiterten Syntax mit Unterstützung für ElseIf, End If und logische Ausdrücke beliebiger Komplexität.
Problem
Viele machen Fehler aufgrund falscher Formatierung oder Verschachtelung von Bedingungen, nutzen ElseIf inkorrekt, was die Lesbarkeit erschwert und mit schwer fassbaren logischen Fehlern einhergeht. Oft verwechseln Anfänger When und ElseIf und machen den Fehler, die Logik zu duplizieren.
Lösung
Verwenden Sie If...ElseIf...Else...End If, um besucherfreundliche verschachtelte Bedingungen aufzubauen. Gruppieren Sie immer relevante Bedingungen, vermeiden Sie wiederholte Prüfungen und überflüssige Konstruktionen. Für komplexe Bedingungen ist es besser, logische Operatoren (AndAlso, OrElse) zu verwenden.
Beispielcode:
Dim age As Integer = 22 If age < 18 Then Console.WriteLine("Minderjährig") ElseIf age < 65 Then Console.WriteLine("Erwachsen") Else Console.WriteLine("Älter") End If
Schlüsselmerkmale:
ElseIf Blöcke verbessert die Lesbarkeit.Was passiert, wenn man End If in mehrzeiligen If-Konstruktionen nicht verwendet?
Kompilierungsfehler. Alle mehrzeiligen Konstruktionen erfordern End If. Verbesserungen traten mit der Einführung des einzeiligen If auf, zum Beispiel:
If x > 0 Then y = 1 Else y = -1
Kann ElseIf ein eigenes Else haben?
Nein. Man kann in einer Kette von Bedingungen nur einen Else verwenden, der sich auf den gesamten If-Block bezieht. Zum Beispiel:
If x = 1 Then ... ElseIf x = 2 Then ... Else ... End If
Was unterscheidet den Operator Or von OrElse?
Or wertet immer beide Bedingungen aus, während OrElse nur nach Bedarf (wenn die erste falsch ist). Verwenden Sie OrElse für Kurzschlusslogik.
Mehrstufige Verschachtelung von If, bei der keine Bedingung mit Else versehen ist, und es gibt keine ausreichende Dokumentation, führt zu Fehlern beim Hinzufügen neuer Zweige.
Vorteile:
Nachteile:
Verwendung lesbarer ElseIf-Klauseln mit Erklärungen, Zusammenführung ähnlicher Bedingungen, Beendigung aller Zweige.
Vorteile:
Nachteile: