Обьясните if ((Status == 2)||(Status == 3)) { } и if (Status == 2||3) не одно и то же?
- Войдите на сайт для отправки комментариев
Втр, 26/12/2017 - 23:55
Обьясните if ((Status == 2)||(Status == 3)) { } и if (Status == 2||3) не одно и то же?
компилируется, но второе как то не работает.. :(
Основ вы не знаете. Может так до вас дойдет
if ((Status == 2)+(Status == 3)) { } if (Status == 2 + 3) {}да, некоторые основы прошли мимо меня, это правда, теперь заполняю пробелы как могу.
так и не понял пока, меня сравнение интересует || а также &&, еще ра з - первый вараинт он работает как и требуется по замыслу, а вот более коротки второй вараинт казалось бы тоже саое - но не работает, хотя компилируется. Задача была - более коротко записать желаемое.
Я готов объяснить, если Вы сначала объясните мне
if ((Status == 2)||(Status == 3)) { } и !"№;%:?*()_+ не одно и то же?
Только именно объяснтие, не просто "да" или "нет", а заодно и почему?
Пока будете объяснять, заодно поймёте и ответ на свой вопрос. И, кстати, потому же!
компилируется, но второе как то не работает.. :(
Почему не работает? Работает. Делает именно то, что написано.
мне казалось if (Status == (2||3)) - будет тоже самое, что и первый вариант, но так и не понял, что он делает. Значит нужно указывать только так как в моем первом варианте и никак иначе?
Так Вы посмотрите опреации, чего там не понимать?
Так, стоп только собрался объснять как он работает, как обнаружил подлог. В первом посте не было скобок, которые появились в пятом.
Вы чего там лошадей на ходу меняете? Что Вам объяснять-то со скобками или без?
Status = 2||3;
и в сериал выкинуть не судьба ?
а я и в скобках и без них пробовал, с вторыми скобками логичнее, но всеравно по ходу там иной результат был в программе. Вот и решил здесь спросить, так как сам не разобрался.
Status = 2||3;
и в сериал выкинуть не судьба ?
хорошо, а как в сериал вот такое выкинуть: Status = (2||3); ?
Но на вопрос "как Вам объяснять" Вы так и не рответили.
Впрочем, если бы Вы мой вопрос про !"№; восприняли не как шутку (а он ею не был), Вы бы уже сами до всего догадались.
Просто возьмите таблицу операций (я Вам давал) и выолните руками то, что в скобках под ифом - всё поймёте. Только выполняйте как написано, а не свои фантазии. Когда поймте что там получается, запустите проверочный скетч. Убедитесь, что поняли правильно.
боюсь, я вас не до конца понял. Но если можно дать ответ на второй вопрос, он мне поможет понять мою ошибку:
if ((Status == 2)||(Status == 3)) и if (Status == (2||3)) - эти варианты идентичны должны быть?
Status = 2||3;
и в сериал выкинуть не судьба ?
хорошо, а как в сериал вот такое выкинуть: Status = (2||3); ?
byte b = 0; void setup() { Serial.begin(115200); b = 2 || 3; Serial.println(b); } void loop() { }вместо 2 или 3 попробуйте другие числа от 0-255
результатов будет два - 0 или 1;
Операция 2||3 дает true или 1. И последнее выражение срабатывает если Status равен истине . Что в не тоже самое как в первом выражение.
боюсь, я вас не до конца понял. Но если можно дать ответ на второй вопрос, он мне поможет понять мою ошибку:
if ((Status == 2)||(Status == 3)) и if (Status == (2||3)) - эти варианты идентичны должны быть?
читаю дословно
1 - если статус = 2 ИЛИ статус = 3 ....
2- если статус = логическое ИЛИ между числами 2 и 3 (которое ВСЕГДА будет равно 1) ....
нда... я понял - попробовал логическим ИЛИ сравнить теплое с мягким.. так нельзя сравнивать.
нет, это не одно и тоже во втором варианте вы сравниваете 2 с 3 и общий результат сравниваете с Status
тип так Status == (2||3)
сравнение 2 или 3, 2 || 3 проверяет на истинность хотябы одного условия, 2 это true, поэтому ваше выражение
Status == 2||3 , будет работать как Status == 2,
Например, Status == 0||0||5, это тоже, что Status == 5
сравнение 2 или 3, 2 || 3 проверяет на истинность хотябы одного условия, 2 это true, поэтому ваше выражение
Status == 2||3 , будет работать как Status == 2,
Например, Status == 0||0||5, это тоже, что Status == 5
хм... , интересно
то есть
сравнение 2 или 3, 2 || 3 проверяет на истинность хотябы одного условия, 2 это true, поэтому ваше выражение
Status == 2||3 , будет работать как Status == 2,
Например, Status == 0||0||5, это тоже, что Status == 5
хм... , интересно
то есть
я отвечу, о то вы наверное в вики застряли
Status == 2||3 , будет работать как Status>0
так же как и
Status == 0||0||5, это тоже, что Status>0
Согласен, с моей стороны косяк, тестировал в консоли js, но и у вас косячек
-1 == 0||5 какой результат ?
0 == 5||3 а тут ? Явно не > 0
Вот так должно работать, то что я писал ранее
2 == (2||3)
5 == (0||0||5)
Вообще-то и я допустил косяк , чем и сбил весь форум. Приоритет операции || ниже ==
И if (Status == 2||3) скорее всего будет работать так if ((Status == 2)||(3)) . То есть всегда истина .
Согласен, с моей стороны косяк, тестировал в консоли js, но и у вас косячек
-1 == 0||5 какой результат ?
0 == 5||3 а тут ? Явно не > 0
знаете мне смешно, но вы как нововыдавленый политик рассуждаете, в этом ключе (подмены понятий) и отвечу
Status = Путин и не надо в левую сторону никаких других аргументов подставлять
-1 == 0||5 какой результат ? = Навальный.
0 == 5||3 а тут ? Явно не > 0 = Собчак.
мы обсуждали конкретный случай, не понятный топикстартеру, вроде разобрались ...
но нет ! нам нужна пепсикола, макдак и т.д.
извините что с эронией, но формула 2+2=5, тут не нужна.
в c/c++ это не канает
5 == (0||0||5) ? "ok" : "err" ;
в js, канает )), свои особенности видать...
знаете мне смешно
Угу, мне тоже смешно, какое там >0, это к чему этот бред был с вашей стороны, кого-то учит, а сам ошибается...
в c/c++ это не канает
5 == (0||0||5) ? "ok" : "err" ;
в js, канает )), свои особенности видать...
можно попробывать еще ПИТОН, АДУ, PL ...
и другие азиатские .... ой кудаито меня понесло ))) СПАТЬ !!!
знаете мне смешно
Угу, мне тоже смешно, какое там >0, это к чему этот бред был с вашей стороны, кого-то учит, а сам ошибается...
хотите глянуть на ASM листинг ? )))
Можно, а в чем проблема ? Автор указывал о конкретном ЯП ? Или ардуино не пишется на питоне, js ? Лучше объясните к чему это Status > 0 , это с АДУ, PL ?
Вы начинаете меня злить...
Любой, нормальный компилятор, код
превратит не в последовальность команд сравнения с двойкой или тройкой, а выполнит преобразование правой части в соотвествии с логической операцией и потом результат сравнит со значением переменной Status.
дальше продолжать ?
Конечно продолжать, только начните с этого места
Status == 0||0||5, это тоже, что Status>0
---
3 == 5 || 0 || 5 ? "ok" : "err"
0 == 5 || 0 || 5 ? "ok" : "err"
-1 == 5 || 0 || 5 ? "ok" : "err"
все это true будет, к чему ваше Status>0
ок, поехали...
опратору IF глубоко насрать что там у вас получится 5,4,3 или еще что то отличное от нуля
но я ввыше задал вопрос, после чего вы возбудились
нуежели
равно пяти ?
не редактируйте посты пока я пишу ответ
Status == 0||0||5, это тоже, что Status>0 ?
Ваше? Status>0 ?
---
Мне что, за вами следить ? )))
Конечно продолжать, только начните с этого места
Status == 0||0||5, это тоже, что Status>0
---
3 == 5 || 0 || 5 ? "ok" : "err"
0 == 5 || 0 || 5 ? "ok" : "err"
-1 == 5 || 0 || 5 ? "ok" : "err"
все это true будет, к чему ваше Status>0
давайте не эфорически , а кодом , который скомпилируется в Arduino IDE и будет понятен всем и топикстартеру, в том числе.
void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: Serial.println(3 == 5 || 0 || 5 ? "true" : "false"); Serial.println(-1 == 5 || 0 || 5 ? "true" : "false"); Serial.println(0 == 5 || 0 || 5 ? "true" : "false"); delay(5000); }если вы поймете разницу между
и
мы придем к, как там , оБЩий знамИнатель... во !!
Ну та вы же это мне писали
Status == 0||0||5, это тоже, что Status>0
https://vk.com/video169843584_170553760
Если подставить
то да...
Ну та вы же это мне писали
Status == 0||0||5, это тоже, что Status>0
этого не писал
писал что
больше "> 0"
Ну вот по всякому пытаешся оскарбить, хоть и на вы, но догнать сам то не можешь
если
Status>0 то почему, если
Status = -1 дает true?
int Status(-1); void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: Serial.println(3 == 5 || 0 || 5 ? "true" : "false"); Serial.println(Status == 5 || 0 || 5 ? "true" : "false"); Serial.println(0 == 5 || 0 || 5 ? "true" : "false"); delay(5000); }сравнение 2 или 3, 2 || 3 проверяет на истинность хотябы одного условия, 2 это true, поэтому ваше выражение
Status == 2||3 , будет работать как Status == 2,
Например, Status == 0||0||5, это тоже, что Status == 5
хм... , интересно
то есть
я отвечу, о то вы наверное в вики застряли
Status == 2||3 , будет работать как Status>0
так же как и
Status == 0||0||5, это тоже, что Status>0
Ну вот по всякому пытаешся оскарбить, хоть и на вы, но догнать сам то не можешь
если
Status>0 то почему, если
Status = -1 дает true?
int Status(-1); void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: Serial.println(3 == 5 || 0 || 5 ? "true" : "false"); Serial.println(Status == 5 || 0 || 5 ? "true" : "false"); Serial.println(0 == 5 || 0 || 5 ? "true" : "false"); delay(5000); }слушай уважаемый (пока) ложись спать, ты в кукрсе что объявлденый тобой int может принимать отрицательные значения отличные от нуля
это так в JS присваивают знаения перменым ?
у меня уже , язык заплетается, и пальцы не попадают . извини .. .
Вообще-то и я допустил косяк , чем и сбил весь форум. Приоритет операции || ниже ==
И if (Status == 2||3) скорее всего будет работать так if ((Status == 2)||(3)) . То есть всегда истина .
да тоже почитал,но чет мне не понятно, должно сформироваться выражение в левой и правой части, а вдруг в правой части есть тоже ==
но истина в листинге ASMa? я ща не способен)))
сегодня придет ЕвгенийП, и всех нас накажет !!!
Status>0 то почему, если
Status = -1 дает true?
Патамуш, true, это все, что не 0. -1 != 0, поэтому -1 == true. Но при выводе true преобразуеца в 1, а false в 0
.
А топикстартеру:
Первое выражение
(Status==2) || (Status==3)
читается как (Статус равно 2) или (Статус равно 3)?
а второе
(Status==2||3)
читается как Статус равно 2 или true? Так как это операция ИЛИ, то выражение всегда будет true.
Падумай.
слушай уважаемый (пока) ложись спать, ты в кукрсе что объявлденый тобой int может принимать отрицательные значения отличные от нуля
О чем ты? -1 это что, не отрицательное значение отличное от 0?
это так в JS присваивают знаения перменым ?
это так в c/c++ присваивают значения переменным, пугает отсутствие оператора присваивания?
Status>0 то почему, если
Status = -1 дает true?
Патамуш, true, это все, что не 0. -1 != 0, поэтому -1 == true. Но при выводе true преобразуеца в 1, а false в 0
Угу, точно, почему тогда
Serial.println(0 == 5 || 0 || 5 ?"true":"false");дает true ?0 равно 5 или false или true == true. Нет?
А, я думал вы как хдрайвер, не понимая доказываете свое..
да тоже почитал,но чет мне не понятно, должно сформироваться выражение в левой и правой части, а вдруг в правой части есть тоже ==
и в чем проблема ? для "одаренных" звезд
a == 0 || 5 || b == 10 опять true
и в чем проблема ? для "одаренных" звезд
a == 0 || 5 || b == 10 опять true
ты совсем туп, правда? конечно труе, а что еще должно давать это выражение?
Лион, зачем вообще вы со своими комментариями двоечника влезли в эту ветку? Почти с первого сообщения #17 почти все написанное вами в ветке - бредятина. Например вот это:
==== цитата
Status == 2||3 , будет работать как Status == 2,
b707, да, ладно уж, ребята, новый год на носу, давайте к позитиву переходить.
Предлагаю выпить за анод и прекратить срач :))