Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Вернее, про порядок вычисления. Столкнулся с тем, что в в операторе If len("строка")<>0 AND msgbox("тра-ля-ля") then .......................................... получаю вывод msgbox, хотя len("строка") у меня точно ноль - вижу при пошаговом выполнении. то есть обязательно вычисляются все выражения? ну при "ИЛИ" это понятно, а зачем по "И"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 00:49 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Да, вычисляется полностью все логическое выражение. В .NET это можно избежать, а в VB6/VBA пользуйтесь вложенным IF-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 00:54 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
избыточно, однако. понял, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 01:09 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Тёмa i koизбыточно, однако. понял, спасибо. Не согласен. Если я указываю функцию в выражении, я ХОЧУ, чтобы она была выполнена, вне зависимости от результатов других функций, мало ли что она делает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 01:14 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Вы хотите сказать, что в скрипте: Строка = "" If Len(Строка) <> 0 And MsgBox("тра-ля-ля") Then MsgBox ("трали-вали") Трали-вали выводится?????? Вы говорите: при "ИЛИ" это понятно, а зачем по "И" Так ведь это же первая часть условия, выполнится всегда, а вторая в зависимости от обстоятельств Не забывайте про существование Or, Xor, And, Eqv, Imp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 05:47 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, Я тебя уже просил, не лезь давать советы в вопросы, в которые ты даже не врубаешься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 09:26 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Я тебя уже просил, не лезь давать советы в вопросы, в которые ты даже не врубаешься Первое правило студента, не знаешь сам, помоги товарищу Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:26 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, самому интересно в чём же я тут не понимаю Был вопрос: то есть обязательно вычисляются все выражения? Мой ответ: Так ведь это же первая часть условия, то есть левая и она выполнится всегда, а вторая, то есть правая в зависимости от обстоятельств Что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 16:27 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюShocker.Pro, самому интересно в чём же я тут не понимаю Был вопрос: то есть обязательно вычисляются все выражения? Мой ответ: Так ведь это же первая часть условия, то есть левая и она выполнится всегда, а вторая, то есть правая в зависимости от обстоятельств Что не так? Твой ответ неверен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 16:31 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
> Автор: Ципихович Эндрю > Что не так? Где пример подтверждающий твои слова? З.Ы. Эндрю, пожалуйста, понятнее формулируй свои мысли. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 16:37 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюВы хотите сказать, что в скрипте: Строка = "" If Len(Строка) <> 0 And MsgBox("тра-ля-ля") Then MsgBox ("трали-вали") Трали-вали выводится?????? Вы говорите: при "ИЛИ" это понятно, а зачем по "И" Так ведь это же первая часть условия, выполнится всегда, а вторая в зависимости от обстоятельств Не забывайте про существование Or, Xor, And, Eqv, Imp Нет, он хочет сказать, что траляля выводится. В ряде языков при включенной оптимизации компилятор, увидев что Len(Строка) <> 0 не выполнилось, вторую часть после AND выполнять не будет, т.к. и так ясно, что условие не выполнится. А в общем случае следует писать так If Len(Строка) <> 0 Then If MsgBox("тра-ля-ля") Then MsgBox ("трали-вали") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 16:40 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, совершенно с Вами согласен, и правильно Вы мои мысли высказали Такую запись If Len(Строка) <> 0 Then If MsgBox("тра-ля-ля") Then MsgBox ("трали-вали") впервые вижу, проверил, работает как надо Век живи век учись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 16:49 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю Такую запись If Len(Строка) <> 0 Then If MsgBox("тра-ля-ля") Then MsgBox ("трали-вали") впервые вижу, проверил, работает как надо Век живи век учись ))) Ну так это не одна конструкция, а две - один if, вложенный в другой if. If () Then If () Then EndIf EndIf В точности как в голове мысль развивается, так и записали - "если строка не пустая, то тогда если пользователь в диалоге нажал да, то тогда делаем ченить". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 17:32 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, всё понятно но тяжеловата для восприятия в этой части: If MsgBox("тра-ля-ля") , далее нет = ... или <> ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 17:39 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюEdd.Dragon, всё понятно но тяжеловата для восприятия в этой части: If MsgBox("тра-ля-ля") , далее нет = ... или <> ... А, ну тут я не в курсе, что возвращает в VB функция MsgBox, потому написал как было выше. Если она возвращает значения, трактуемые как True/False, то незачем их дополнительно сравнивать с True/False, получая в ответ снова True/False. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 18:02 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, не, автор привел умозрительный пример, трактовать возвращаемое этой функцией значение как булевое нельзя в любом случае (она никогда не возвращает ноль), но автор ведь не об этом спрашивал. А ЦЭ объяснять типы данных все равно бесполезно, он за несколько месяцев не выучил, что такое "логическое выражение" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 18:43 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, мой ответ от сегодня, 16:27 не верный почему??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 18:47 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюShocker.Pro, мой ответ от сегодня, 16:27 не верный почему??? Сколько раз нужно тебе ответить на один и тот же вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 18:53 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вот ситуация мне оправдываться приходится, что я не знаю, что знаю Типы данных: B o o l e a n B y t e I n t e g e r Long S i n g l e D o u b l e C u r r e n c y D e c i m a l Date Obj ect S t r i n g V a r i a n t Логические операторы Логические операторы в языке VBA используются для манипулирования логическими значениями — True (в числовом представлении это 1) и False (в числовом представлении это 0). При выполнении этих операторов логическим переменным присваивается результат вычисления логических выражений, указанных в правой части операторов. Обычно результатом логических операций является значение типа Boolean. В табл. 5.2 кратко описаны логические операторы, поддерживаемые в языке VBA. В табл. 5.2 логический оператор And обозначает операцию конъюнкции, результатом выполнения которой будет значение True тогда и только тогда, когда оба операнда имеют значение True. В остальных случаях результатом выполнения этой операции будет значение False. (3 > 2) And (4 > 3) (3 > 6) And (4 > 3) Результатом вычисления первого выражения будет значение True, так как оба операнда имеют значение True. Результатом вычисления второго выражения будет значение False, поскольку первый операнд имеет значение False. Логический оператор Or обозначает операцию дизъюнкции, результатом выполнения которой будет значение True, если хотя бы один из операндов имеет значение True. Результат будет иметь значение False тогда и только тогда, когда оба операнда имеют значение False. (3 > 5) Or (4 > 2) (2 > 3) Or (2 > 4) Результатом вычисления первого выражения будет значение True, так как один из операндов (второй) имеет значение True. Результат вычисления второго выражения будет иметь значение False, так как оба операнда имеют значение False. Логический оператор Not обозначает операцию логического отрицания и имеет только один операнд. Результатом выполнения этой операции будет значение True, если исходно операнд имеет значение False, и наоборот, результатом будет значение False, если операнд имеет значение True. D1 = ((2 > 5) Or (7 > 3)) And Not ((3 > 1) Or (8 < 10)) После вычисления приведенного выше выражения переменной D1 будет присвоено значение False, поскольку, хотя оба помещенные в скобки логические выражения Or имеют значения True, оператор Not превращает второе значение True в False, а значит и результатом всего оператора And будет значение False. Логический оператор Xor обозначает логическую операцию «исключающее ИЛИ», результатом выполнения которой будет значение True, если операнды имеют различные значения, и значение False, если оба операнда имеют одинаковые значения (оба — True или оба — False). D2 = ((2 > 5) Xor (7 > 3)) And ((3 > 1) Xor (8 < 10)) В приведенном выше примере переменной D2 будет присвоено значение False, поскольку, хотя первый помещенный в скобки оператор Xor дает значение True, второй оператор Xor дает значение False, а значит результатом всего оператора And будет значение False. Логический оператор Eqv обозначает логическую операцию эквивалентности двух выражений, результатом выполнения которой будет значение True, если оба операнда имеют одинаковые значения (оба — True или оба — False), и значение False, если только один из операндов имеет значение False. Логический оператор Imp обозначает логическую операцию импликации (следования) двух выражений, результатом выполнения которой будет значение False, если первый операнд имеет значение True, а второй операнд имеет значение False, и значение True во всех остальных случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 19:10 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
типа сам написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 19:22 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, копи паст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 19:31 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
И что это доказывает? Что ты что-то знаешь? Ципихович ЭндрюTrue (в числовом представлении это 1) все читать не стал, но вот эта ошибка сразу бросилась в глаза, что навевает нехорошие мысли об источнике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 19:47 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, к чёрту все эти первоисточники, как Вам что покажешь всё обхаете, ну Вы то мне верите что это я откуда то копирнул, а не сам придумал??? Ну откуда уже не вспомнить!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 20:03 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, Какая разница, верю - не верю? Просто непонятно, зачем ты сюда притащил эту простыню, что ты хотел этим сказать... ЗЫ: Вдали послышались тяжелые шаги модератора.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 20:05 |
|
||
|
маненькый вопросик про вычисления логических выражений
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, что я хотел этим сказать, мне бы узнать первоисточник и его с Вами свести, Вы бы между собой поговорили а я послушал бы стоя рядом, может бы Вы подрались, но знаю, что это не реально догадываюсь, что Ваш ответ будет такой: а кто тебе сказал, что я буду с ним спорить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 20:16 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36839178&tid=2159437]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 155ms |

| 0 / 0 |
