Объясните, как здесь, в этом Java-коде, работает приоритет операторов [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Объясните, как здесь, в этом Java-коде, работает приоритет операторов [дубликат]

Сообщение Anonymous »

Рассмотрим следующий пример:

Код: Выделить всё

int x=10,y=5;
System.out.println(x++^++y|(x=y)&101);
Я получил 7 на выходе, но ответ — 12. Может ли кто-нибудь кратко объяснить, как этот Java-код выдает 12 на выходе.
Поправьте меня, если я Я ошибаюсь, я попробовал это так:
Как мы знаем, самое высокое значение заключено в круглые скобки, поэтому первое значение y будет присвоено x.
Итак,

Код: Выделить всё

         x++^++y|5&101      (now x=5,y=5)
теперь следующий по приоритету — оператор увеличения/уменьшения, поэтому теперь x++ и ++y будут оцениваться так

Код: Выделить всё

          5^6|5$101         (now x=6,y=6)
теперь следующий по старшинству - побитовый и
так

Код: Выделить всё

          5^6|5            (since 5&101 gives 5)
теперь следующий по приоритету — побитовое XOR
так что

Код: Выделить всё

         3|5               (since 5^6 gives 3)
затем следующий наивысший приоритет идет побитово ИЛИ
так что Я получил 7, но ответ 12

Подробнее здесь: https://stackoverflow.com/questions/792 ... -java-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»