Для случаев, когда схема управления является фактически лучшим графическим представлением концепции.
http://upload.wikimedia.org/wikipedia/commons/0/06/For-loop-diagram.png
Я думаю, что основной вопрос - это вопрос: делает
i < InputStream.readInt();
выполняется каждая итерация цикла? Да, это так.
В этом случае он не изменяет какую-либо чувствительную переменную, единственная переменная, которая фактически изменяется в вашем коде, это i , но InputStream.readInt()
будет запускать каждую итерацию для сравнения и, следовательно, будет запускать readInt()
снова на InputStream
.
Как насчет чего-то вроде:
for (int i=0; i < xObj.addOne().parseInt(); i++)
(учитывая, что метод addOne возвращает строковое представление целого на единицу больше)
Мой "чек" увеличивает значение, которое будет увеличиваться, если я вызову xObj.addOne (), как обычно? Да. и будет ли он увеличиваться до следующей итерации цикла? Да.
Это как делать
int x = 0;
for (int i=0; i < ++x; i++);
Это никогда не прекратится, поскольку ++ x всегда больше, чем x (что также i)
А как насчет нетривиального примера?
int x = 6;
for (int i=0; i < x--; i++) {
System.out.print(i+" ");
}
* * 1 042 выходы
0 1 2