Ho un semplice programma:
public class Mathz {
static int i = 1;
public static void main(String[] args) {
while (true){
i = i + i;
System.out.println(i);
}
}
}
Quando ho eseguito questo programma, tutto quello che vedo è 0
per i
mia uscita. Mi sarei aspettato la prima volta che avremmo avuto i = 1 + 1
, seguito da i = 2 + 2
, seguito da i = 4 + 4
ecc.
Ciò è dovuto al fatto che non appena proviamo a dichiarare nuovamente i
sul lato sinistro, il suo valore viene ripristinato a 0
?
Se qualcuno può indicarmi i dettagli più fini di questo sarebbe fantastico.
Cambia int
in long
e sembra che stia stampando i numeri come previsto. Sono sorpreso di quanto velocemente raggiunge il valore massimo di 32 bit!