Cuando ejecuto esta clase el bucle parece terminar anticipadamentepara el bucle de terminación temprana cuando se compara con Integer.MAX_VALUE y utilizando System.out.println
class Test {
public static void main(String[] args) {
int result = 0;
int end = Integer.MAX_VALUE;
int i;
for (i = 1; i <= end; i += 2) {
System.out.println(i);
}
System.out.println("End:" + i);
}
}
de salida es:
1
3
5
...
31173
31175
End:31177
Por qué ¿termina ahí? Curiosamente, si eliminé el System.out.println(i)
en el ciclo for, la salida sería End:-2147483647
. Obviamente, el valor en i
tiene wrapped round
.
versión de Java que estoy usando es
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
Intenta imprimir Integer.MAX_VALUE –
No obtengo ese resultado. Parece que tu buffer está lleno o algo así. –
El código no debe imprimirse End, también es un error (aunque ligeramente diferente), el ciclo que escribió es infinito, siempre seré <= Integer.MAX_VALUE. – user439407