Булево выражение - порядок операций
-
19-08-2019 - |
Вопрос
У меня есть тест в Excel VBA:
If (test1) And (test2) And (test3) Then 'do something End If
В C, Java и т. д. сначала будет выполняться test1, затем test2, затем test3. Критически, если test1 имеет значение false, весь тест является false, поэтому остальные тесты не запускаются.
Это случается в этом случае с VBA? Если да, то в каком порядке выполняются тесты?
Решение
Во всех VB до .NET нет такого понятия, как короткое замыкание. Все выражения будут оцениваться, даже если это не требуется. Если вы хотите короткое замыкание, делайте вложенные IF.
Не связан с StackOverflow