Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Differenza tra ++i e i++

    qlkn mi sa dire k differenza cè in java scrivere ++i o i++?grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Differenza tra ++i e i++

    Originariamente inviato da giannimarz
    qlkn mi sa dire k differenza cè in java scrivere ++i o i++?grazie
    Il primo è un pre-incremento e il secondo è un post-incremento.

    Il fatto del "prima" o "dopo" dell'incremento è relativo al suo utilizzo. Se fai solamente l'istruzione ++i; oppure i++; (senza assegnare il risultato ad un'altra variabile) infatti non c'è alcuna differenza.

    Invece:

    codice:
    int a = 2;
    int b;
    
    b = ++a;
    // adesso 'b' vale 3 e 'a' vale 3
    codice:
    int a = 2;
    int b;
    
    b = a++;
    // adesso 'b' vale 2 e 'a' vale 3
    Nel primo caso la variabile 'a' è stata incrementata prima del suo utilizzo, mentre nel secondo caso è stata incrementata dopo il suo utilizzo.

    Idem con -- ovviamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    quindi in un ciclo for mettere i++ significa eseguire prima il blocco di istruzioni e poi incrementare la i, nel caso di ++i invece significa incrementare prima la i e poi esegure il blocco di istruzioni?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da giannimarz
    quindi in un ciclo for mettere i++ significa eseguire prima il blocco di istruzioni e poi incrementare la i, nel caso di ++i invece significa incrementare prima la i e poi esegure il blocco di istruzioni?
    No.

    for (i = 0; i < N; i++) { .... }

    è praticamente uguale a

    for (i = 0; i < N; ++i) { .... }

    Traducendo il ciclo for con un while, sarebbe:

    codice:
    i = 0;
    while (i < N)
    {
        ....
    
        i++;    // mettendo ++i; non ci sarebbero differenze
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    ok grazie..sei stato molto kiaro..

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Il linguaggio va specificato anche nel titolo, come da Regolamento.

    Questo l'ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299

    Re: Differenza tra ++i e i++

    Originariamente inviato da giannimarz
    qlkn mi sa dire k differenza cè in java scrivere ++i o i++?grazie
    Semplicemente: se hai un'istruzione contenente "++i", l'incremento viene eseguito PRIMA dell'istruzione; se invece hai "i++" è eseguito DOPO.

    Ad esempio, prova con (ora non ricordo se la println accetta anche oggetti diversi da stringhe, nel caso usa println((i++).toString()):
    codice:
    int i = 4;
    System.out.println(i++);    //stampa 4 e poi incrementa (puoi verificarlo con un'altra println di i)
    //equivalente a System.out.println(i); i += 1;
    
    int j = 7;
    System.out.println(++j);    //incrementa e poi stampa 8
    //equivalente a j += 1; System.out.println(j);
    Svegliati, Neo. Matrix ti possiede...

  8. #8
    ciao! il nostro professore ci ha spiegato la differenza tra i due in maniera a dir poco spassosa:

    1) ++i vuol dire che prima di ogni altra cosa sulla riga che contiene questi tre simboli, il compilatore incrementa di uno la i

    2) i++...questa ci ha fatto ridere, ci ha parlato delle magie del compilatore, che incrementa la i in un magico e stupendo istante prima del ; cioè, prima fa tutto il resto, poi la incrementa...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.