一 i++ 和 ++ i 深入分析
两种方式均为自增,不同点在于 i++ 是在先参与运算后再加1,而++i 则是先加1,再参与运算
示例1
public class Test{
public static void main(String [] args){
int i = 1;
int s = ++i;//先把i+1 然后赋值给了s
int x= i++;//先把i赋值给x,再把i+1
System.out.printLn(i);
System.out.printLn(s);
System.out.printLn(x);
}
}
输出结果为 3,2,2
示例2
int i=5; int s=(i++)+(++i)+(i--)+(--i)=24;
输出结果 24
5 = (i++) //i先赋值给左边,i再加1 此时 i = 6
7 = (++i) // i先加1 再赋值给左边 此时 i= 7
7 = (i--) // i先赋值给左边,i再减1 此时 i= 6
5 = (--i) // i先减1 再赋值给左边,此时 i= 5
所以4个算式的结果相加 = 5+7+7+5 = 24
示例3
public class Test{ public static void main(String [] args){ int i = 1; System.out.printLn(i+++i++); System.out.printLn("i="+i); System.out.printLn(i+++++i); System.out.printLn("i="+i); System.out.printLn(i+++i+++i++); System.out.printLn("i="+i); } }
程序运行结果
3
i= 3
8
i= 5
18
i= 8
用括号分割计算即可 如第一个算式
int i = 1; 计算 (i++)+(i++)
int a = (i++); //i 先赋值给 a(此时a=1) i再加1 此时i=2
int b = (i++); //i 先赋值给 b(此时b=2) i再加1 此时i=3
上列算式的和= a+b = 3
原文:https://www.cnblogs.com/hup666/p/12977936.html