Булево выражение - порядок операций - PullRequest
2 голосов
/ 06 декабря 2008

У меня есть тест в Excel VBA:

If (test1) And (test2) And (test3) Then
    'do something
End If

В C, Java и т. Д. Сначала будет запускаться test1, затем test2, затем test3. Критически, если test1 ложно, весь тест ложен, поэтому остальные тесты не запускаются.

Это происходит в этом случае с VBA? Если да, то в каком порядке проводятся тесты?

1 Ответ

9 голосов
/ 06 декабря 2008

Во всех VB до .NET нет такого понятия, как короткое замыкание. Все выражения будут оцениваться, даже если это не требуется. Если вы хотите короткое замыкание, делайте вложенные IF.

...