+ 1
Объясните пример
Объясните пример! Почему ответ равен одному? int x = 2; int y = ++x + x++; int z = --y - x--; Console.Write(z); out: 1 Explain example! Why is the answer equal to one?
1 Antwort
+ 1
++x - предварительная инкрементация (сначала увеличиваем значение, потом используем его в выражении),
x++ - постинкрементация (сначала используем, потом увеличиваем).
int x = 2; // здесь я думаю объяснять нечего
int y = ++x + x++; // преинкрементация, т.е первый элемент (++x) сначала увеличит свое значение, только потом будет использован в выражении, итого получается int y = 3 + x++
// второй элемент (x++) сначала используется в выражении (помним что на этом этапе наша переменная x уже равна 3, а не 2), а только потом его значение увеличевается, итого получаем int y = 3 + 3 = 6, а также переменную x увеличенную уже до 4
int z = --y - x--; // получаем int z = 5 - 4 = 1, а также значение x измененное до 3
Итого после выполнения всех инструкций получаем z = 1, y = 5, x = 3.