Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Почему x = x++ не приводит к увеличению значения x в цикле?

int x = 0; while (x < 3) { x = x++; System.out.print(x + " "); }
Я понимаю, что если написано y = x++, то сначала y присваивается значение х, после чего х увеличивается на единицу. Почему этого не происходит с выражением х = х++?


Ответ

x = x++;
эквивалентно
int tmp = x; x++; x = tmp;
Сначала присваивается старое значение, делается инкрементирование, присваивается старое значение - поэтому цикл бесконечный, x = 0 всегда.

Комментариев нет:

Отправить комментарий