[Java] Concatenation i++ et ++i

Résolu
doctorpower Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
doctorpower Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
est-ce que quelqu'un peut m'expliquer la difference entre i++ et ++i, je sais seulement que ces evenement ne se produisent pas au meme moment.
merci d'avance
Configuration: Windows Vista
Firefox 3.0

5 réponses

  1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    par exemple :

    int i=5;
    int j;
    j= 3 + i++;
    // maintenant j vaut 8.

    int i=5;
    int j;
    j= 3 + ++i;
    //maintenant j vaut 9.

    ou encore :

    int i=5;
    int j;
    j++= 3 + i;
    //maintenant j vaut 9.

    int i=5;
    int j;
    ++j= 3 + i;
    //maintenant j vaut 8.
    2
  2. doctorpower Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   68
     
    merci Pacorabanix, je comprend mais j'ai encore un doute.

    Dans ton premier exemple la concactenation i++ s'effectue quand meme a la fin de l'operation ou pas ? Une fois que j=8, i prend-il quand meme la valeure 6?

    Dans ton 3ieme exemple la concatenation j++ s'effectue apres l'operation sur l'ensemble du resulat ? Donc 8+1?

    je ne suis pas sur d'avoir parfaitement compris
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      pour le premier : oui. Justement, c'est ce que fait i++. Quand l'affectation est exécutée, j = 3 + 5 car i++ est évalué comme . mais ensuite, et seulement après le calcul pour l'affectation de j, i est incrémenté, et passe à 6.

      Dans mon troisième, en effet l'incrémentation (pas concaténation ;) ) s'effectue sur j après que l'affectation ait été calculée. d'abord on affecte 8 à j, et ensuite j est incrémenté de 1. onc à la fin de cette ligne il vaut 9.

      Dans le 4ème exemple, j est d'abord incrémenté (et passe de 0 à 1) et ensuite on lui affecte 8, donc l'incrémentation n'a servi à rien ;).



      Remarque :
      Dans une boucle for par exemple, il n'y a aucune différence entre l'instruction i++ ou ++i dans les parenthèses du for : for(int i=0; i<10; i++) car ici la valeur de i n'est pas utilisée dans l'instruction "i++"
      0
  3. doctorpower Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   68
     
    super, merci c'est clair et bien expliqué :)
    0
  4. danimo
     
    Salut,
    Juste une petite remarque en forme de question doc:

    Pourquoi appelles-tu celà concaténation? Le ou les + sont tous dans ces exemples des opérateurs arithmétiques.
    Ce ne sont pas les mêmes + que par exemple ici où il y a bien concaténation:
    System.out.println("a = " + a);


    Cordialement,

    Dan
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. doctorpower Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   68
     
    salut Dan,
    je me suis embrouillé avec les termes, je parlais de l'incrementation et non de concatenation :)
    0