Por quê os seguintes códicos apresentam resultados diferentes?
/*Codigo 1; Este loop a partir do numero 21 retorna numeros negativos, e deposi disso só retorna zeros(0)*/
long fatorial = 1;
long i = 1;
while(i <= 100) {
fatorial *= i;
System.out.println("fat (" + i + ") = " + fatorial);
i++;
}
/*Codigo 2; Este loop funciona perfeitamente*/
long fatorial = 1;
for(long i = 1;i <= 100; i++) {
fatorial *= i;
System.out.println("fat (" + i + ") = " + fatorial);
i++;
}