Bonjour,
si i est un int, y a-t-il une différence entre i++ et ++i en Java (dans un for par exemple) ?
Bonjour,
si i est un int, y a-t-il une différence entre i++ et ++i en Java (dans un for par exemple) ?
euh... si si, il y a une différence, mais dans un for elle n'apparait pas.
i++ : utilise la valeur de i, puis l'incrémente
++i: incrémente la valeur de i, puis l'utilise
dans le for, la différence n'apparait pas, car cela n'intervient que dans la formule de modification de l'itérateur. En aucun cas la valeur de i n'est utilisé directement, on compare juste sa valeur après modification.
Pour sentir la différence, teste ce code:
ça apparaitra plus clair...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int i; int j; i=1; j=i++; System.out.println("i++: "+j); i=1; j=++i; System.out.println("++i: "+j);
[edit] zut, encore grillé... je devrais faire des réponses plus courtes!
Salut, si je me souviens bien:
utilise la valeur de i, puis l'incrémente
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int i =0; int a=i++//a vaut 1 et i vaut 0
Incrémente i et utilise sa valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int i =0; int a=++i//a vaut 1 et i vaut 1
Tu es sûr? car moi je me souveins d'un truc dans ce genre ou alors je confond...non...
pour être plus clair:
j=i++ correspond à:
tandis que j=++i correspond à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3j=i; i=i+1;
quand on est dans un for, on a simplement i++, ou ++i, soit simplement i=i+1, donc aucune différence finale et visible entre les deux... mais il y en a une (pas dire qu'il n'y en a pas, parce que ça va donner des boulettes après dans une autre utilisation...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3i=i+1; j=i;
Bien sur qu'il y a une difference ..
i++ => post-incrementation (c'est a dire l'incrementation se fera en dernier)
++i => pre-incrementation (c'est a dire avant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int i=1; int a; a = i++; // a vaut un .. et seulement apres l'affectation i vaudra 2 a = ++i; // a et i vaudront 2
Partager