Bonjour,
Je débute en Java et je voudrais bien comprendre les bases, j'utilise Eclipse pour écrire des petites procédures à l'aide d'un tuto créé sur ce site :
Ma question est simple pourquoi ici n1 ne prends pas la valeur de n2 soit 1 ? pourtant on est bien en affectation et pourquoi sur ici2 n1 ne s'incrémente pas soit avoir la valeur 3 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class Test4 { public static void main (String args[]) { int n1=0; int n2=0,x=0,y=0; System.out.println("1= " + x++); // est équivalent à y=++x; System.out.println("2= " + x + " y=" + y);/* x = x + 1;*/ System.out.println("3= " + ++x); // est équivalent à /* x = x + 1;*/System.out.println("4=" + x); System.out.println("n1 = " + n1 + " n2 = " + n2); ici n1=n2++; /*n1=n2;*/ System.out.println("n1 = " + n1 + " n2 = " + n2); n1=++n2; System.out.println("n1 = " + n1 + " n2 = " + n2); n1=n1++; //attention ici2 System.out.println("n1 = " + n1 + " n2 = " + n2); } }
Extrait du cours "Les opérateurs d'incrémentation et de décrémentation sont : n++ ++n n-- --n
Si l'opérateur est placé avant la variable (préfixé), la modification de la valeur est immédiate sinon la modification n'a lieu qu'à l'issue de l'exécution de la ligne d'instruction (postfixé)
L'opérateur ++ renvoie la valeur avant incrémentation s'il est postfixé, après incrémentation s'il est préfixé."
Dans les 2 cas je suis en postfixé la modif n'a lieu qu'à l'issue de l'éxécution de la ligne
si quelqu'un peut m'aiguiller merci
Partager