что такое AndAlso и OrElse

Предыдущая тема Следующая тема Перейти вниз

что такое AndAlso и OrElse

Сообщение  electrik в Пт Дек 12, 2008 12:13 am

наверное я очень туп, но прочитав в мануале, я так и не понял для чего они. при экспериментах, эти операторы возвращают всегда -1. я только понял, что там для какой-то коньюнкции.

electrik

Сообщения : 394
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  tux в Пт Дек 12, 2008 5:59 pm

ваще судя по таблицам истинности AndAlso аналогичен And, а OrElse - Or, с единчтвенным оличием в том, что если можно понять результат с использованием тока первого операнда, то второй не учитывается, возможно с помощю этого достигается некий прирост производительности. А вообще, ты, как человек разбирающийся в Асме глянул бы код, да и нам бы мож рассказал что под ними скрывается
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 28
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  tux в Пт Дек 12, 2008 6:19 pm

Несдержался и сам посмотрел)) Однако получается одно и тоже, странно, и зачем тогда эти операторы нужны, если они обсалютно идентичны...
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 28
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  Eric-S в Чт Янв 29, 2009 9:55 am

Всё оказалось очень просто и крайне полезно.
Только с помощью andalso я решил свою проблемку.

А дело было так. Нужно было проверить два условия, причём именно в одном if ... then. Но, оператор and мне не подошел. Потому, что вторая проверка просто недопустима, если первое выражение равно 0.

Был у меня примерно такой код:

Код:

if (ws > 0) and (*ws = "hello") then print "hello"

Когда строчка была, то всё было нормально.
Но когда строчки небыло, то вышибало с ошибкой.
И решил я попробовать andalso.


Вот мой эксперементик.
Код:

function test() as integer
print "return 5"
function = 5
end function

dim as integer a = 0

if (a > 0) Andalso (test() = 5) then
print "true"
else
print "false"
end if
sleep

Когда стоит простой and, то функция вызываеться по любому.
А когда andalso, то функция вызываеться, только когда левый аперанд истинен.

Вот так вот.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  Gena в Чт Янв 29, 2009 6:05 pm

Экселлент - замечательно придумано. Теперь мне не нужно создавать вложенные в друг друга операторы )

Gena

Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 23
Откуда : Москва

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  Eric-S в Чт Янв 29, 2009 11:08 pm

Угу. А мы-то всё гадали.
Это действительно удобно.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  electrik в Пт Янв 30, 2009 12:02 am

эрик, молодец! я даже на асме это смотрел, и не догнал, поэтому и заткнулся. просто там немного запутанный код, но теперь все ясно.

electrik

Сообщения : 394
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: что такое AndAlso и OrElse

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения