Помогите разобраться в логике действий. Что левый оперант всегда сохраняется отдельно и потом возвращается более менее осознал в некоторых примерах что нашел, но в этом не получается понять ход действий. Пробовал прогнать через инспекцию в Intelij и она сообщает что второе инкрементирование вообще не срабатывает, а почему не понимаю.
int x = 5;
x = x++ + x++;
System.out.println(x);
Программа выводит:
11
Постинкремент сначала вернет значение переменной, а после увеличит ее значение на 1.
Поэтому это выражение
int x = 5;
x = x++ + x++;
можно описать как:
x = 5 + 6;
Первый x++, вернет 5, но увеличив значение до 6, поэтому второй x++ вернет 6, увеличив значение до 7.
Однако, у нас уже есть присваивание x, поэтому туда запишется сумма -- 11
Проверяем:
int x = 5;
int y = x++ + x++;
System.out.println(y + " - " + x);
// 11 - 7
запись x++ (post increment) инкррементирует значение после сложения
x = 5;
y = x++ + x++;
y = 5 + 6;
x = 7;
если хотите инкрементировать до, используйте ++x (pre increment)
x = 5
y = ++x + ++x;
y = 6 + 7;
x = 7
или так
x = 5
y = ++x + x++;
y = 6 + 6;
x = 7;
++a
a = a + 1;
return a;
a++
temp = a;
a = a + 1;
return temp;
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости