В этом примере переменная цикла 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