Я не понимаю, почему это уравнение приращения столбца не увеличивается. Я бы подумал, что после операции + = значение будет увеличиваться на 1, а затем во второй раз вокруг i будет иметь значение 1. Но выход представляет собой бесконечный цикл 0 нуля. Кто-нибудь может объяснить, почему «я» не увеличивается.Post Increment Бесконечный цикл i + = i ++;
int i = 0;
for(; ;) {
if (i >= 10) break;
i += i++;
}
System.out.println(i);
В качестве побочного примечания поведение происходит от того, как определяется пост-инкремент и как работает оператор + =. Такое же поведение наблюдается в JS и, вероятно, на других языках. – njzk2
* Java Puzzlers * имеет похожую, но немного более сложную головоломку под названием [* Inclement Increment *] (http://cs.fit.edu/~ryan/cse4051/java-puzzlers/4-loopy-puzzlers/puzzle-25/Increment -java.html). – shmosel
В Java и C# он выводит бесконечный цикл. Но в C он выводится как код: 'i + = ++ i;' Изменяет язык на язык. –