(1)
int z=0;
int r=((z++)+z);
这里我想在计算表达式时,变量z的值被认为是1。 但之前;如何更新变量z。
(2)
int y3=0;
int r3=y3=y3++;
System.out.print("(r3+y3)"+"\t"+r3+"\t"+y3);
here how y3 is still 0 after evaluation of expression y3++, it should have increased by 1.
答案 0 :(得分:1)
后增量x++
是一个表达式,它返回x的值,然后才增加x。
因此:
int y0 = 0; // y0 is 0
y0 = y0++;
与:
相同int y0 = 0;
int x = y0++; // x = 0, y0=1
y0 = x; // y0 again 0
答案 1 :(得分:1)
variable++
会返回variable
的原始值。例如:
int variable = 0;
System.out.println(variable++); // 0
System.out.println(variable); // 1
如果您想要新值,请使用++variable
:
int variable = 0;
System.out.println(++variable); // 1
System.out.println(variable); // 1
所以,这是第一个细分的逐步细分:
int z=0; // z is 0 now
int r=((z++)+z);
int r=(0+z); // z is 1 now
int r=(0+1);
int r=1;
第二个:
int y3=0; // y3 is 0 now
int r3=y3=y3++;
int r3=y3=0; // y3 was incremented to 1, but then we immediately set it back to 0
答案 2 :(得分:1)
只需遵循以下规则:x++
首先按x
递增1
,然后返回旧值。
int z = 0;
int r = z++ + z;
Step1: r = 0 + z; z = 1;
Step2: r = 0 + 1;
Step3: r = 1;
int y3 = 0;
int r3 = y3 = y3++;
Step1: y3 = 1; // New value by increment
Step2: y3 = 0; // Old value
Step3: r3 = y3;