Да, интересный баг.
Причем вот так:
if ((x == y == z) )
результат всегда верен.
И если написать так:
bool bResult = (x == y == z);
То значение bResult всегда верное
Но, вобще говоря, мне жутко не нравятся подобные "багогенерирующие" места вроде данного "двойного условия", присваивание в заголовке оператора if, длиннющие хитрые условия внутри заголовка оператора for... Эффективности они не добавляют, а вот понимание кода - снижают существенно.
Мне даже оператор "вопросик" не нравится. Обычный if выглядит гораздо более удобочитаемым.
- www.mql5.com
Равенство трех переменных проверяется конструкцией вида if (x == y && y == z).
У вас видимо получается следующее: if ((x == y) == z). Сначала x == y возвращает результат типа bool, а потом этот bool сравнивается с z.
В любом случае, это не баг.
- www.mql5.com
Равенство трех переменных проверяется конструкцией вида if (x == y && y == z).
У вас видимо получается следующее: if ((x == y) == z). Сначала x == y возвращает результат типа bool, а потом этот bool сравнивается с z.
В любом случае, это не баг.
ну да, вроде логично.
получается, что случай с 12000 - false, я так понимаю является следствием приведения типов.
Бага нет. Такой конструкции в языке тоже нет.
Равенство трех переменных проверяется конструкцией вида if (x == y && y == z).
У вас видимо получается следующее: if ((x == y) == z). Сначала x == y возвращает результат типа bool, а потом этот bool сравнивается с z.
В любом случае, это не баг.
ну да, вроде логично.
получается, что случай с 12000 - false, я так понимаю является следствием приведения типов.
Слышь, "эксперт", а почему она тогда компилируется ?
Да, интересный баг.
Причем вот так:
if ((x == y == z) )
результат всегда верен.
да неужели.
Не работает ни так if ((x == y == z) ), ни так if ((x == y) == z).
Синтаксически ваш код x==y==z корректен, поэтому он компилируется. Семантически ваш код корректным не является.
Три идиота решили помыться, а один модератор отмыться.
Могу оказать помощь всем ( и себе в том числе).
Может грубить не будем и удалим оскорбляющие ( в том числе и оппонентов посты)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При z = 12 они равны, при z = 12000 - о чудо, не равны.