Помогите разобраться в логике действий. Что левый оперант всегда сохраняется отдельно и потом возвращается более менее осознал в некоторых примерах что нашел, но в этом не получается понять ход действий. Пробовал прогнать через инспекцию в 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;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
пытаюсь в массиве вывести все ошибки которые были допущены, но в нем оказывается только одна, остальные выводит