Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 | 3 |

 

  Вопрос: Почему проверяется второй операнд And? Добавлено: 30.09.07 22:15  

Автор вопроса:  Nytrogen

Ответить

  Ответы Всего ответов: 36  

Номер ответа: 16
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #16
Добавлено: 03.10.07 22:27
Двойные — быстрые, одиночные — всегда вычисляют обе части выражения. Причём одиночные, применимо к числовым значениям, выполняют не логические действия, а поразрядные.

Отсыпь, что курил.
Первый раз я слышу не о том, что у and и && разный приоритет, а о том, что && реализует короткую логику, а and длинную.

Ответить

Номер ответа: 17
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #17
Добавлено: 03.10.07 23:10
____ Дык я же извинился. Это в Jav'е и JavaScript'е есть "быстрые" и "длинные" бинарные операторы (ответ №13). И это мне нравится.

Ответить

Номер ответа: 18
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #18
Добавлено: 04.10.07 06:50
в JavaScript'е есть "быстрые" и "длинные" бинарные операторы

А поподробнее?

Ответить

Номер ответа: 19
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #19
Добавлено: 04.10.07 09:49
____ Бинарные операторы &, &&, |, ||. Двойные — быстрые (не делают "лишних" вычислений), одиночные — всегда вычисляют обе части выражения. Причём одиночные, применимо к числовым значениям, выполняют не логические действия, а поразрядные. Вот такая вот штуковина-морковина. :)
____ Одиночные удобно применять там, где в "ненужной" части может стоять нужый инкремент (++ или --), либо функция, которую выполнить надо в любом случае и т.д.

Ответить

Номер ответа: 20
Автор ответа:
 Deggasad



Вопросов: 0
Ответов: 6
 Профиль | | #20 Добавлено: 04.10.07 17:24
Ну или On Error Resume Next =)))


Ну это совсем коряво будет, вложенные проверки делать нужно
  If a <> 0 Then
  If 1 / a > 1 Then
   MsgBox "All Right!"
  End If: End If

Ответить

Номер ответа: 21
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #21 Добавлено: 04.10.07 20:27
Да знаю. Я ж прикалываюсь с On Error =)

Ответить

Номер ответа: 22
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #22
Добавлено: 04.10.07 21:18
ADSemenov.ru, ты все-таки обязательно отсыпь, что курил.
Вот есть короткий логический оператор []. Перед ним обычно пишут имя массива и получают таким образом значение. Если написать просто arr[5], ничему его не присваивая, компилятор может забить и не вычислять все. А есть длинный логический оператор — (). Перед ним пишут имя функции, например, func(). Оно вычисляется всегда, даже если значение ничему не присваивается.

Узнаешь свою риторику?

Ответить

Номер ответа: 23
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #23
Добавлено: 04.10.07 21:38
____ Sharp, я вижу, что мне лучше не комментировать излагаемые факты. Потому просто и без риторики повторю просто голый факт. —
____ В Java и в JavaScript есть бинарные операторы &, &&, |, ||. Двойные — быстрые (не делают "лишних" вычислений), одиночные — всегда вычисляют обе части выражения. Причём одиночные, применимо к числовым значениям, выполняют не логические действия, а поразрядные.

____ Есть ещё вопросы?

Ответить

Номер ответа: 24
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #24
Добавлено: 05.10.07 07:04
То, что битовые операции вычисляют обе части выражения так же банально, как и то, что + вычисляет обе части. Однако с самого начала ты пытаешься убедить, что существует две логики — короткая и длинная (они так правильно называются) в одном языке на уровне операторов.

Ответить

Номер ответа: 25
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #25
Добавлено: 05.10.07 09:48
____ Ну, наконец-то! Именно так: существует две логики — короткая и длинная (они так правильно называются) в Java на уровне операторов.
____ Что в этом непонятного. Проверить можно, написав примитивный html-файл в любом текством редакторе и запустив его в любом браузере.

Ответить

Номер ответа: 26
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #26 Добавлено: 06.10.07 00:52
Все уже давно решено в VB 9.0

And, Or - вычисляет все
AndAlso, OrElse - первый, при необходимости второй.

Вместо IIf - если нужно вычислить только тот вариант который проходит по условию - использовать If
Dim Count = If(Users IsNot Nothing, Users.Count, 0)

Разумеется, все типизировано.

Еще одна конструкция
Dim CurrentUser = If (User, DefaultUser)

Если User - не Nothing, возвращается user, иначе DefaultUser.

Вобщем аналоги синатксических конструкций ? : и ??.

Так что теперь Vb 9.0 рулит впереди всех.

Ответить

Номер ответа: 27
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #27 Добавлено: 06.10.07 00:54
2 ADSemenov.ru
Задолбал блин свои черточки писать!

Ответить

Номер ответа: 28
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #28
Добавлено: 06.10.07 01:18
&nbsp;&nbsp;&nbsp;&nbsp;А это работает? Ну не могу я без абзацного отступа! Душа не радувается ... Всё, пошёл я спать.

Ответить

Номер ответа: 29
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #29
Добавлено: 06.10.07 08:38
    То, что привел Brand, если такое действительно существует, это является короткой и длинной логикой. А то, что ты приводил, это короткая логика и арифметические выражения, к логике никакого отношения не имеющие. Кроме того, абсолютную безграмотность ты продемонстрировал, назвав JavaScript Java.

Ответить

Номер ответа: 30
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #30
Добавлено: 06.10.07 10:53
В Java и в JavaScript есть бинарные операторы &, &&, |, ||. Двойные — быстрые (не делают "лишних" вычислений), одиночные — всегда вычисляют обе части выражения. Причём одиночные, применимо к числовым значениям, выполняют не логические действия, а поразрядные.

____ Не вижу здесь ничего из того, что мне вменили. И там и там есть длинная и короткая логика. Но, помимо этой логики, "одиночные" операторы могут выполнять и поразрядные действия.
____ Не надо так близко к сердцу принимать ...

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам