! = Operador en Java para el bucle

Alex5207:

¿Cómo es que el siguiente código imprime "El valor de J es: 1000"?
Yo he pensado que la "j! = 1000" sería evaluar en false en todos los casos (1.000 Debido mod 19 no es 0), por lo tanto, lo que es un bucle infinito.

public static void loop2() {
    int j = 0;

    for(int i=0;j != 1000;i++) {
        j = j+19;
    }
    System.out.println("The value of J is: " + j);
}
Proph3cy:

que ha definido el j como int. Los enteros tienen un rango definido. El Max-valor del entero firmado es 2147483647. Tan pronto como usted se pasa de ese valor tiene un bit de desbordamiento, que hace que todo lo que hay que empezar por el valor min. En el caso de los enteros eso es -2147483648. En algún momento en el bucle se llega a un valor negativ a partir del bucle que lleva su bucle a tierra a 981 + 19 = 1000 >>> bucle se sale, J es igual a causa de su salida-condición para el ciclo for.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=182535&siteId=1
Recomendado
Clasificación