Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Порядок вычисления логического выражения / 8 сообщений из 8, страница 1 из 1
26.01.2004, 19:04
    #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
26.01.2004, 19:18
    #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
26.01.2004, 19:24
    #32388331
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок вычисления логического выражения
Нет.
PowerBuilder does NOT shortcircuit boolean logic, it evaluates ALL the expressions inside a boolean expression.
...
Рейтинг: 0 / 0
26.01.2004, 19:26
    #32388335
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок вычисления логического выражения
Гарантируется, что выполнятся все подвыражения, даже если вычисление можно прервать ранее. Это описано в доке.
...
Рейтинг: 0 / 0
26.01.2004, 19:30
    #32388338
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок вычисления логического выражения
Спасибо, Филипп!

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

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


Слово "shortcircuit" не найдено поиском ни в хелпе, ни в online book.
...
Рейтинг: 0 / 0
26.01.2004, 19:45
    #32388349
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок вычисления логического выражения
© Philip Salgannik :-)
...
Рейтинг: 0 / 0
26.01.2004, 20:02
    #32388359
Enlighten me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок вычисления логического выражения
2Филипп :-))
2ALL Кто-нибудь может напомнить (с ссылкой на manuals.sybase.com в идеале) в каком месте документации по PowerBuilder Филипп запретил сокращать вычисления логических выражений?
...
Рейтинг: 0 / 0
26.01.2004, 20:36
    #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
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Порядок вычисления логического выражения / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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