class Test{
public static void main(String[] args){
int i = 0;
int j = i++ + ++i;
int k = --i + i--;
System.out.println("i="+i+" j="+j+" k="+k);
}
}代码执行后i、j、k分别等于多少呢?
它们是怎样运算的,请说出详细运算步骤
public static void main(String[] args){
int i = 0;
int j = i++ + ++i;
int k = --i + i--;
System.out.println("i="+i+" j="+j+" k="+k);
}
}代码执行后i、j、k分别等于多少呢?
它们是怎样运算的,请说出详细运算步骤
a=1+++i的话就先i=i+1;i=2.然后a=i+1,a=3
(1) int i = 0;
(2)int j = i++ + ++i;
先i++,结果是产生一份i的拷贝做为下一步运算的值,然后i加1,假设拷贝为i_copy1,那么i++以后i_copy1的值为0,i值为1.
再++i,结果是先i加1,再产生i的一份拷贝做为下一步运算的值,假设拷贝为i_copy2,那么++i以后i_copy2的值为2,i值为2.
最后"+"运算符的作用是i_copy1 + i_copy2,根据上面推论结果为2,因此j=2
(3)int k = --i + i--;
同上,推出k=2
int k = --i()(自减为1,运算时为1) + i--(运算时i = 1,然后自减为0);//k = 1 + 1 = 2
最后i = 0
结果 i = 0,j = 2,k = 2
运算步骤:
i=0;
j=(i++)+(++i) 分步计算为:i++ =0 而i=1;++i=1+1=2 而i=2;所以j=0+2=2,此时i=2;
k =(--i)+(i--) 分不计算为:--i=2-1=1 而i=2-1=1;i--=1 而i=1-1=0;所以k=1+1=2,此时i=0;