maracaibo25 ha scritto:
Salve ragazzi quaif (aVar++ < 10) {
System.out.println(aVar + " Hello World!");
} else {
System.out.println(aVar + "Hello Universe!");
}
l'esercizio vuole il risultato sapendo che aVar è un integer e vale 9,io credevo che venisse 9 Hello World!,ma ho sbagliato
Partiamo da una questione. Se aVar è un java.lang.Integer, avviene innanzitutto un auto-unboxing (Java 5+) per cui il compilatore inserisce di nascosto una invocazione aVar.intValue() per estrarre il int primitivo.
Comunque, c'è un POST-incremento. Quindi il compilatore PRIMA usa il valore per il confronto e poi DOPO l'uso incrementa il valore (cosa che tra l'altro porta ad avere un auto-boxing, cioè da int a Integer).
Pertanto 9 < 10 è "vero" e POI incrementa. Quando si entra nel "corpo" del if quindi aVar è
già incrementato. Quindi puoi dedurre tu il risultato ...