Espressione booleana - Ordine delle operazioni
-
19-08-2019 - |
Domanda
Ho un test in Excel VBA:
If (test1) And (test2) And (test3) Then 'do something End If
In C, Java, ecc. test1 verrebbe eseguito prima, quindi test2, quindi test3. Criticamente, se test1 è falso l'intero test è falso, quindi i test rimanenti non vengono eseguiti.
Succede in questo caso con VBA? In tal caso, in quale ordine vengono eseguiti i test?
Soluzione
In tutti i VB precedenti a .NET non esiste un corto circuito. Tutte le espressioni saranno valutate anche se non richieste. Se vuoi un cortocircuito, esegui IF annidate.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow