В том то и прикол. Я готов принять, что так происходит при первом ходе цикла. А при втором заходе, разве при инкрементировании нового значения переменной i не должна использоваться эта самая временная переменная?
То есть java же должна понимать что в выражении i=i++ В правую части i уже инкрементирована ранее
Как это работает: 1. Сохраняется текущее значение i во временную переменную 2. Значение i увеличивается на 1 (i++) 3. Вычисляется значение ПРАВОЙ части присваивания. Для этого мы забираем значение из временной переменной. Это СТАРОЕ значение i до увеличения. 4. Переменной i присваивается значение правой части.
Как это работает: 1. Сохраняется текущее значение i во временную переменную 2. Значение i увеличивается на 1 (i++) 3. Вычисляется значение ПРАВОЙ части присваивания. Для этого мы забираем значение из временной переменной. Это СТАРОЕ значение i до увеличения. 4. Переменной i присваивается значение правой части.
а что происходит со 2 пунктом? 2. Значение i увеличивается на 1 (i++)
Как это работает: 1. Сохраняется текущее значение i во временную переменную 2. Значение i увеличивается на 1 (i++) 3. Вычисляется значение ПРАВОЙ части присваивания. Для этого мы забираем значение из временной переменной. Это СТАРОЕ значение i до увеличения. 4. Переменной i присваивается значение правой части.
раз 5 прочитал. не доходит. попозже, на свежую голову, попробую еще раз осмыслить... спс
Ребята, я что-то не въезжаю... int i = 0; for (int k = 0; k < 100; k++) { i = i++; System.out.println(i); } Хорошо. Т.к. пост инкремент, первый output 0. Но разве при последующих циклах переменной i не должно присваиваться новое значение 1 ?