De if-expressie genereert een "deel door nul" -fout in VB 6 omdat Waarde3 nul is. (Maar zie de Snelle tip over delen door nul voor meer hierover.) Het kan zijn dat de gevallen die ertoe leiden dat Waarde3 nul is, zeer zeldzaam zijn en alleen optreden wanneer u geniet van een vakantie op duizend mijl afstand, dus u kunt worden teruggebeld om het programma in noodgevallen te repareren modus. (Hallo! Het gebeurt!)
Na het veranderen van And naar AndAlso, werkt het programma! De reden is dat het laatste deel van de samengestelde If-voorwaarde — (waarde 2 \ waarde3) — nooit daadwerkelijk wordt uitgevoerd. Wanneer u AndAlso gebruikt, weet VB.NET dat de uitdrukking niet kan slagen als eenmaal is vastgesteld dat het eerste deel van de voorwaarde - a is niet groter dan Waarde1 - onwaar is. Dus VB.NET stopt met het evalueren van de uitdrukking daar. Een vergelijkbaar voorbeeld zou kunnen worden gemaakt met OrElse.
Deze analyse suggereert ook hoe u wat efficiëntie aan uw code kunt toevoegen door een samengestelde logische expressie correct te rangschikken. Als u de uitdrukking die het meest waarschijnlijk onwaar is in de meest linkse positie plaatst wanneer u AndAlso gebruikt, kunt u voorkomen dat uitvoeringscycli worden gebruikt om de meest rechtse uitdrukking te evalueren. In een enkele test zou het niet genoeg verschil maken om zelfs maar na te denken. Maar als uw test in een of andere lus zit en ontelbare keren wordt uitgevoerd, kan dat een groot verschil maken.