X+=++x, почему в сокращении не используется окончательное значение x?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 X+=++x, почему в сокращении не используется окончательное значение x?

Сообщение Anonymous »

Я изучаю Java.
В ходе теста, который я проходил, вопрос заключался в том, чтобы оценить результат выражения, включающего множество операторов увеличения и уменьшения, а также сокращенный оператор. Меня всегда учили думать как компилятор.
Точный вопрос был такой:

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

int x = 7, y = 5;
x -= x++ + y + --y + ++x + 10;
System.out.println(x);
Я знаю, что нечто подобное никогда не будет полезно в реальном программировании, но я могу винить только свою школу за это.
У меня вопрос: ,
поскольку операторы увеличения и уменьшения автоматически обновляют значение переменной, почему сокращенный оператор не использует окончательное значение переменной?
Теперь перейдем к (упрощенному) проблема:

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

int x = 10;
x -= ++x + ++x;
При оценке сокращение упрощается до:

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

x = x - (++x + ++x)
что дает -13.
Но я думал вот так

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

x = x - (++x + ++x)
x = x - (11 + ++x)
x = x - (11 + 12)
x = 12 - (11 + 12)
x = 12 - 23
x = -11
поскольку приращение обновит значения автоматически
Но почему Java использует исходное значение для сокращения?
И почему это обрабатывается по-другому, если так?
p>
редактировать: спасибо за ваши ответы, очевидно, операторы присваивания извлекают и запоминают значение левого операнда, чего я не знал

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • X+=++x, почему в сокращении не используется окончательное значение x?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • X+=++x, почему в сокращении не используется окончательное значение x? [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • WooCommerce Live Расчет: QTY X get_meta ('_ value') = Окончательное значение
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • WooCommerce Live Расчет: QTY X get_meta ('_ value') = Окончательное значение
    Anonymous » » в форуме Jquery
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Какую роль минимальное и максимальное значения играют в сокращении использования памяти?
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

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