Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А в баньку я бы двоих отправил (Может тогда и мне отпуск дадут).
Вот только не надо лицемерить. Никто вас насильно на должности не держит. И модерировать не заставляет.
Хотите забанить -- забаньте и успокойтесь, я уже привыкши.
Я так понимаю, что конструкция if (x == y == z) означает следующее.
Имеем два оператора сравнения, значит, они выполняются по порядку.
Сперва выполняется оператор x==y и получается результат true
После чего выполняется оператор true == z
Здесь все зависит от того, к какому типу будет приведены величины. Но, на мой взгляд, хоть значения будут приводиться к bool, хоть к int - в любом случае результат должен быть одинаков и для 12 и для 12000
Почему 12 и 12000 работают по-разному, я не пойму.
Все-таки, здесь баг.
(Хотя, еще раз повторю - подобные конструкции в языке - "багогенерирующи", и им нет места в нормальном коде).
у меня не воспроизводится. всегда false.
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=12000 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=1200 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=120 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=12 r=0
Забавно, компилятор цуко хитрый :)
int y = 10;
int z = 12;
if (x == y == z)
Похоже оптимизируется, переменные заменяются постоянными значениями, тип теряется,
(true == z) при z не больше 1байта - сравнивнение логическое, если больше - целых чисел.
у меня не воспроизводится. всегда false.
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=12000 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=1200 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=120 r=0
2013.03.17 13:11:07 qqwwee (AUDCAD,H1) x=10 y=10 z=12 r=0
А у вас с топикстартером битность компилятора наверняка разная.
у меня не воспроизводится. всегда false.
Нужно цикл убрать и все получится.
А у вас с топикстартером битность компилятора наверняка разная.
не, тестировал 32/64.
оба false
Нужно цикл убрать и все получится.
ну таки явно же налицо приведение к bool типу
2013.03.17 15:45:24 qqwwee (AUDCAD,H1) x=10 y=10 z=128 r=0
2013.03.17 15:45:24 qqwwee (AUDCAD,H1) x=10 y=10 z=10 r=1
2013.03.17 15:45:21 qqwwee (AUDCAD,H1) x=10 y=10 z=127 r=1
2013.03.17 15:45:21 qqwwee (AUDCAD,H1) x=10 y=10 z=10 r=1
В примере сергеева с циклом все правильно, ибо там компилятор не делает полной оптимизации.
И с такой конструкцией x = y = z тоже надо разобраться.