Дмитрий Еремин, я предполагал что в обоих случаях должна быть 1.
int j = 0;
int z = 0;
z = j++;
Console.WriteLine(j);
//1
int j = 0;
j = j++;
Console.WriteLine(j);
// 0
Отдельно взятые примеры понимаю, которые мне скинули тут, в моем конкретном примере никак не пойму, почему в моем случае 0.
Попробую описать еще раз, как я это представляю:
1. Объявили переменную j и присвоили ей 0.
2. j = j++ Сначала происходит присвоение: j = 0. Затем 0 увеличивается на 1.
3. Вывожу значение j. Ожидал получить 1. Как в первом примере.
Дмитрий Еремин, это я понимаю. Но разве после присваивания в цикле, j вообще не увеличивается на 1 ? Интересно в какой момент в данном случае происходит j++?
Как я предполагал:
1. Переменной j присваивается 0.
2. j увеличивается на 1.
3. Т.к. j объявлена вне цикла, на этот момент в ней уже 1.
4. При следующей итерации j присваивается уже 1 и т.д.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.