В этом примере переменная цикла i изменяется в трёх выражениях:
1. «System.out.println(--i)» – переменная i уменьшается на единицу. Поскольку используется префиксная форма оператора --, то на экран выводится новое (уменьшенное) значение.
2. «i = (i++) + i--» – переменная i увеличивается на единицу, затем уменьшается на единицу, затем вычисляется сумма, значение которой присваивается всё той же i.
Поскольку используется постфиксная форма операторов ++/--, то при вычислении суммы используются значения, которые были у i до увеличения / уменьшения. Получается, что это действие эквивалентно следующему: «i = i + (i + 1)»
3. «i++» – переменная i увеличивается на единицу.
Значения переменной i на каждой итерации цикла:
2 → 1 → 3 → 4
4 → 3 → 7 → 8
8 → 7 → 15 → 16
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать