Bonjour,
si i est un int, y a-t-il une différence entre i++ et ++i en Java (dans un for par exemple) ?
Version imprimable
Bonjour,
si i est un int, y a-t-il une différence entre i++ et ++i en Java (dans un for par exemple) ?
non...
Salut, si je me souviens bien:
utilise la valeur de i, puis l'incrémenteCode:
1
2
3 int i =0; int a=i++//a vaut 1 et i vaut 0
Incrémente i et utilise sa valeurCode:
1
2
3 int i =0; int a=++i//a vaut 1 et i vaut 1
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:
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! :mouarf:
Tu es sûr? car moi je me souveins d'un truc dans ce genre ou alors je confond...Citation:
non...
pour être plus clair:
j=i++ correspond à:
tandis que j=++i correspond à:Code:
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:
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:
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
Merci à vous, c'est parfaitement clair ! :)
Essaye aussi ceci
Code:
1
2
3
4
5
6
7 int i = 5; System.out.println(i); i = i++; System.out.println(i); i = ++i; System.out.println(i);
Content d'avoir pu t'aider ;)Citation:
Envoyé par DevloNewb'
Oublie pas de mettre resolu si tu n'as plus de question
Pour mettre :resolu: faut pas changer ton post initial, mais ce tag ce trouve tout en bas de la page ;)
++