читаем про порядок операций. i++ выполняется раньше чем арифметические (+/*) но после того как число было положено в регистр.
парсим это выражение
1) первое слагаемое (i++) кладется в ячейку. Положили «1», переменная i увеличивается, i=2
2) идет сравнение (i > 2). Результат — false. Значит берем второй блок.
3) вычисляем второе слагаемое. (i++ * i++)) Не буду расписывать, но общее правило — сперва в ячейку кладется текущее значение i а потом оно инкрементируется. Результат выглядит так: (2 * 3) = 6. Итог — второе слагаемое 6. В конце операции i = 4;
4) третье слагаемое простое. i++. оно равно 4, после вычисления i = 5;
5) финальное суммирование. i = 1 + 6 + 4 = 11
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
парсим это выражение
1) первое слагаемое (i++) кладется в ячейку. Положили «1», переменная i увеличивается, i=2
2) идет сравнение (i > 2). Результат — false. Значит берем второй блок.
3) вычисляем второе слагаемое. (i++ * i++)) Не буду расписывать, но общее правило — сперва в ячейку кладется текущее значение i а потом оно инкрементируется. Результат выглядит так: (2 * 3) = 6. Итог — второе слагаемое 6. В конце операции i = 4;
4) третье слагаемое простое. i++. оно равно 4, после вычисления i = 5;
5) финальное суммирование. i = 1 + 6 + 4 = 11
www.coderanch.com/t/408774/java/java/explain
++i + ++i + ++i in Java vs C