PDA

Просмотр полной версии : And or одновременно.


in4core
27.02.2010, 01:46
Интересно вдруг стало, а можно ли использовать операторы одновременно, таким образом типа :
if(a==b and or b==c) { } ( возможно просто подругому пишется, это пример)

или же в любом случае только так : if(a==b and b==c) {} ; if(a==b or b==c) {};

mooncar
27.02.2010, 01:53
Логика "И" как бы исключает логику "ИЛИ".
"ИЛИ-НЕ" возможно, "И-НЕ" возможно, а вы о чем-то странном говорите.
Как вы себе представляете эту логику?

Это как понимать?
if(a==b and b==c) {} ;
if(a==b or b==c) {};

Я раньше только слышал о так называемом "индусском коде", но теперь вижу его в действии.

djyamato
27.02.2010, 02:15
а что описать-то можно такой логикой ?
Ну, пример я имею ввиду приведите :)

mooncar
27.02.2010, 02:37
У нас была учительница в школе, у нее замечательная логика была.

" - Марина Сергеевна, на дневник обложка нужна или не надо?
- Да!..."

И все в таком духе.

samana
27.02.2010, 02:49
У нас была учительница в школе, у нее замечательная логика была.

" - Марина Сергеевна, на дневник обложка нужна или не надо?
- Да!..."

И все в таком духе.

:taunt:

in4core
27.02.2010, 03:35
Нет. все проще. Заказчик попросил сделать для анкеты алгоритм. Так вот, алгоритм не простой, Некоторые логики подразумевают ответы типа - Да на 1 вопрос и нет на все остальные = действие. В этом случае формурется последовательность типа 10000. Тоесть ответ да , дает единичку в моем случае. С этими логиками все просто , но есть еще и нестандартные немного логики типа - если ДА на 1 вопрос и/или да на 2 вопрос + да на 5 вопрос.... и т.п - вот для таких логик приходится писать длинные последовательности логических операторов. Когда вопросов 5 это еще не так напряжно, но если больше то ужасно. Поэтому и спросил насчет БЫСТРОГО применения и/или . Ибо не хочется писать длинные строки))))))) лентяй)

Добавлено через 15 минут
to MoonCar _))
Если ты считаешь что ты настолько умен что бы написать данную строку не на ИНДУССКОМ коде - прошу докажи).... Именно за этим я и создал тему узнать можно ли. Раз можешь то покажи.

Вот алгоритм : Если ДА на 1 вопрос и/или ДА на второй вопрос, + ДА на 5 вопрос + любой другой ответ на все остальные, то ДЕЙСТВИЕ1. П.с. вопросов всего 6.

Моя реализация ( по другому не умею):
строка 1 : 110010 если и
строка 2: 010010 если или1
строка 3: 100010 если или2

if(str.substr(0,1)=="0" or str.substr(0,1)=="1" and str.substr(1,1)==str.substr(4,1)=="1"){catch}
if(str.substr(0,1)=="1" and str.substr(1,1)=="0" or str.substr(1,1)==str.substr(4,1)=="1"){catch}

djyamato
27.02.2010, 03:51
У нас была учительница в школе, у нее замечательная логика была.

" - Марина Сергеевна, на дневник обложка нужна или не надо?
- Да!..."

И все в таком духе.

А я в танке :( Не понимаю прикола

wvxvw
27.02.2010, 04:09
Где-то на govnokod.ru попадался новый булевый оператор - "все равно", записывается так: &|, а его инвариант |&.
Операторы or и and устарели в AS2, правильно использовать || и && соответственно.
Если вам нужно проверить множество условий - самый правильный подход:
var condition1:Boolean = true;
var condition2:Boolean = false;
var condition3:Boolean = true;
var condition4:Boolean = false;
var condition5:Boolean = true;
var conditionResult:Number = 0;
if (condition1) conditionResult |= 1;
if (condition2) conditionResult |= 2;
if (condition3) conditionResult |= 4;
if (condition4) conditionResult |= 8;
if (condition5) conditionResult |= 16;
trace(conditionResult.toString(2)); // 10101
var correctResult:Number = 22; // 10110
trace(correctResult.toString(2));
var i:Number = 0;
var k:Number = 1;
while (i++ < 5)
{
if ((correctResult & k) == (conditionResult & k))
trace("result " + i + " is correct");
else trace("result " + i + " is incorrect");
k <<= 1; // k *= 2;
}

mooncar
27.02.2010, 04:10
И / ИЛИ при двух выражениях, дающих false/true - это и есть индусский код. Либо одно должно быть, либо другое.
Логика ИЛИ исключает И, все остальное делается цепочками, если хотите.

Ум здесь не причем. А вот иногда вопрос, выдранный из контекста конкретной задачи, и сформулированный "в воздухе", может выглядеть достаточно.. как бы это помягче сказать, глупо.

VVall
27.02.2010, 04:26
OR - достаточно выполнения любой части условия, AND - необходимо выполнение всех частей условия. Совместить это невозможно никак. Это аналогично попытке совместить + и - в одной операции.

alexcon314
27.02.2010, 09:45
есть еще и нестандартные немного логики типа - если ДА на 1 вопрос и/или да на 2 вопрос + да на 5 вопрос.... и т.п
Если это выдержка из т.з., попросите заказчика уточнить, что он имел в виду, и не морочьте голову.

in4core
27.02.2010, 13:32
Всем спасибо за ответы. А что заказчик имел ввиду я написал, 3 строки как это может выглядеть

mr_pol
27.02.2010, 14:29
вот что у меня получилось) как я понял, нужно да на 1 и/или да на 2 + да на 5 + да на 3, либо на 4, либо на 6 :wacko:

да - 1
нет - 0

expl
27.02.2010, 21:33
OR - достаточно выполнения любой части условия, AND - необходимо выполнение всех частей условия. Совместить это невозможно никак. Это аналогично попытке совместить + и - в одной операции.
Есть еще операция XOR - "либо - либо", но, к сожалению во флеше как булева операция она не реализована - приходится разбивать на комбинации AND и OR

Zik.
27.02.2010, 22:24
Жизнь проходит или все начали пользоваться снова or
and
вместо
&&
||
?

in4core
27.02.2010, 23:57
Да какая разница как писать? мне например быстрее написать or или and чем && так . Суть от этого не меняется и АС2 от этого АС1 не становится. Че к этому придираться полный бред.... это ВАМ не код в клипе писать. а просто разница написания всего то лишь.

mooncar
28.02.2010, 00:04
У or и and вроде другие приоритеты, чем у || и && или это только в PHP?
Если не в этом дело, то наверное, разница все же есть, иначе зачем были введены эти наборы символов?

in4core
28.02.2010, 00:08
Разницы НЕТ! читайте хелп

wvxvw
28.02.2010, 00:41
Разницы НЕТ! читайте хелп

Если бы вы его читали в первую очередь, то увидели бы, что там фигурируе такое слово как deprecated, что значит - устаревший. Эти операторы больше не поддерживаются в следующей версии языка. Но, я думаю, на вас это не отразится т.как вы просто начинающий и ваш код все равно не будет долго использоваться, его не нужно будет поддерживать, или портировать, версия языка тут роли не сыграет.

udaaff
28.02.2010, 00:43
У or и and вроде другие приоритеты, чем у || и && или это только в PHP?
Если не в этом дело, то наверное, разница все же есть, иначе зачем были введены эти наборы символов?

Компилируется все в один и тот же код. Введены, видимо, для того, чтобы соответствовать определенным стандартам.

Разницы НЕТ! читайте хелп

Разница в том, что начиная с Flash Player 5 эти операторы являются нерекомендуемыми к использованию. В AS3 они уже отсутствуют.

in4core
28.02.2010, 00:49
to wvxvw - Я не начинающий. я уже давно в языке. Просто по мелочам не ковыряюсь. Но и не супер продвинутый, хвалится тоже не собираюсь. Переносить мне код не придется тут все верно. АС3 я не изучаю совсем, поэтому и боятся этих операторов нечего. А разница в том что устраели - это не разница, не существенная точнее!.
Спасибо за ответы, и инетерсные вещи. полезно