[Java] Concatenation i++ et ++i

Résolu/Fermé
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 - 22 nov. 2009 à 21:16
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 - 23 nov. 2009 à 09:56
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
A voir également:

5 réponses

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
22 nov. 2009 à 21:22
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
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 68
22 nov. 2009 à 23:52
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
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
23 nov. 2009 à 00:15
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
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 68
23 nov. 2009 à 02:44
super, merci c'est clair et bien expliqué :)
0
Utilisateur anonyme
23 nov. 2009 à 08:51
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 68
23 nov. 2009 à 09:56
salut Dan,
je me suis embrouillé avec les termes, je parlais de l'incrementation et non de concatenation :)
0