От страницы 280 OCP Java SE 6 Программист Practice Exams, вопрос 9:x = x ++ не увеличивается, потому что ++ применяется после назначения?
int x = 3;
x = x++;
// x is still 3
В объяснении мы можем прочитать, что:
x = x++;
линия не оставляетx == 4
оскольку++
является применяется после присвоение произошло.
Я согласен с тем, что x
равно 3, я понимаю пост-инкремацию.
Я не согласен с объяснением. Я бы заменил «после» с «до».
Я думал, что это работает так:
x
является 3.x++
выполняется. Я вижу этот оператор пост-приращение как функции:int operator++() { int temp = getX(); setX(temp + 1); return temp; }
Таким образом, после
x++
исполнения,x
составляет 4, но возвращаемое значение изx++
выражения3
.- Настоящее задание
=
. Просто напишите3
по номеруx
.
Итак, в моих глазах ++
применяется перед тем произошло назначение. Я ошибаюсь?
Вы протестировали его? Сделайте простое приложение и попробуйте! –
Почему бы вам просто не проверить его? –
См. Также http://stackoverflow.com/questions/7911776/what-is-x-after-x-x –