Oggetto integer

di il
5 risposte

Oggetto integer

Salve ragazzi qua
if (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

5 Risposte

  • Re: Oggetto integer

    maracaibo25 ha scritto:


    Salve ragazzi qua
    if (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 ...
  • Re: Oggetto integer

    andbin ha scritto:



    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 ...
    ok quindi il risultato è 10 Hello World
  • Re: Oggetto integer

    maracaibo25 ha scritto:


    andbin ha scritto:



    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 ...
    ok quindi il risultato è 10 Hello World
    Giusto andbin ?
  • Re: Oggetto integer

    maracaibo25 ha scritto:


    ok quindi il risultato è 10 Hello World

    Giusto andbin ?
    Sì sì, è quello giusto!
  • Re: Oggetto integer

    andbin ha scritto:


    Sì sì, è quello giusto!
Devi accedere o registrarti per scrivere nel forum
5 risposte