|
|
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
IsNull(kod_cexa) выдаёт ИСТИНА Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 14:56 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
А как он должен себя вести при операторе "или" ? вот если стоит оператор "и", тогда при не выполнении первого условия, он во второе и не заглядывает. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 15:29 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
Дело не в or или and, а в том, что при kod_cex = Null эта строка выдаст ошибку. Таки да, все функции должны быть посчитаны перед тем, как их значения могут быть обработаны If. If получает результат логической операции IsNull(kod_cexa) Or Val(kod_cex) = 0 и прозводит выполнение той или иной части кода, он ничего не высчитывает и не обязан знать, что за параметры передаются в какие функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 15:55 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
vkodorвот если стоит оператор "и", тогда при не выполнении первого условия, он во второе и не заглядывает. Только не в VB. В if всегда вычисляются все выражения. За счет этого возможны разного рода ошибки. Например: Код: plaintext Из этого же свойства рождается метод оптимизации. Выражение Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 15:58 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
Был не прав насчет ошибки, в условии две разные переменные kod_cex и kod_cex a (или это очепятка?), но прав по поводу If. vkodor тогда при не выполнении первого условия, он во второе и не заглядывает. Заглядывает, заглядывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 15:59 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 16:03 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
Antonariy FAndrew согласен заглядывает... по мне лучше объявить переменную и не делать лишних проверок Код: plaintext 1. 2. 3. 4. видимо поэтому я не встречался с таким ... А вообще забавно возьму на заметку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 16:53 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
И это не все ! Еще есть оператор IIF Оператор IIF вычислит ОБА возвращаемых значения: Вот это вызовет ошибку "Deivision by zero" Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 21:02 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
klen_ Код: plaintext Лучше так: Код: plaintext 1. 2. В VBA функция Nz есть. В VB6 ее нет, но можно сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 16:35 |
|
||
|
Зачем Basic выполняет вторую часть оператора OR если первая уже ИСТИНА?
|
|||
|---|---|---|---|
|
#18+
Лучше использовать функции типа Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 20:19 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=243&tid=2164381]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 315ms |

| 0 / 0 |
