powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Порядок вычисления логического выражения
8 сообщений из 8, страница 1 из 1
Порядок вычисления логического выражения
    #32388309
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу ли я написать примерно следующее, будучи уверен, что ф-ция никогда не выполнится:
Код: plaintext
1.
2.
if TRUE or DROP_ALL_DATABASES() then
   MessageBox( "Relax, guys" , "It not gonna happen" )
end if


Иными словами, гарантироваy-ли в PowerScript-е порядок вычисления логических выражений и где именно в документации можно это прочитать. К своему удивлению, на вскидку не нашел :-(( . Заранее спасибо.
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388323
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИными словами, гарантироваy-ли в PowerScript-е порядок вычисления логических выражений и где именно в документации можно это прочитать. К своему удивлению, на вскидку не нашел :-(( . Заранее спасибо.
Sorry, не совсем точно. Правильный вопрос - гарантируется ли, как в C, например, что правая часть логического выражения, которая не может повлиять на результат не будет вычисляться. false and ... true or и т.д.

Код: plaintext
1.
2.
3.
if ( 1 > 0  or DROP_ALL_DATABASES()) then
   MessageBox( "Relax, guys" , "It not gonna happen" )
end if
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388331
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
PowerBuilder does NOT shortcircuit boolean logic, it evaluates ALL the expressions inside a boolean expression.
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388335
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гарантируется, что выполнятся все подвыражения, даже если вычисление можно прервать ранее. Это описано в доке.
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388338
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Филипп!

А откуда цитата?

Код: plaintext
PowerBuilder does NOT shortcircuit boolean logic, it evaluates ALL the expressions inside a boolean expression.


Слово "shortcircuit" не найдено поиском ни в хелпе, ни в online book.
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388349
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
© Philip Salgannik :-)
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388359
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Филипп :-))
2ALL Кто-нибудь может напомнить (с ссылкой на manuals.sybase.com в идеале) в каком месте документации по PowerBuilder Филипп запретил сокращать вычисления логических выражений?
...
Рейтинг: 0 / 0
Порядок вычисления логического выражения
    #32388379
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чётко написанного ты это не увидишь, но если внимательно посмотреть на вот это:
http://sybooks.sybase.com/onlinebooks/group-pb/pbg0900e/psref/@Generic__BookTextView/7122;pt=7122#X

то под Relational operators in PowerBuilder есть следующее:
авторNULL value evaluations
When you form a boolean expression that contains a NULL value, the AND and OR operators behave differently. Thinking of NULL as undefined (neither TRUE nor FALSE) makes the results easier to calculate.
а под Operator precedence in PowerBuilder expressions есть вот это
авторOrder of precedence
To ensure predictable results, all operators in a PowerBuilder expression are evaluated in a specific order of precedence. When the operators have the same precedence, PowerBuilder evaluates them left to right.

Из выше изложенного можно сделать вывод, что для поддержки NULL values in Relational expressions они (expressions) всегда оцениваются полностью, без shortcircuit :-)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Порядок вычисления логического выражения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]