i++:先赋值后自增,先使用i的当前值,然后再将i加1。
++i:先自增后赋值,先将i加1,然后再使用i的新值。
一、示例题目
示例1
int i = 0;
i = i++;
System.out.println("i = " + i);
示例2
int a = 2;
int b = (3 * a++) + a;
System.out.println(b);
示例3
int a = 2;
int b = a + (3 * a++);
System.out.println(b);
示例4
int i = 1;
int j = 1;
int k = i++ + ++i + ++j + j++;
System.out.println(k);
示例5
int a = 0;
int b = 0;
a = a++;
b = a++;
System.out.println("a = " + a + ", b = " + b);
示例答案
示例1:0
示例2:9
示例3:8
示例4:8
示例5:a = 1, b = 0
具体解释可参考一看就懂的i++和++i详解_song854601134的博客-CSDN博客
二、C#中i++和++i在for循环中区别
这是chatgpt的回答(狗头保命)
1.在for循环运行效率的区别
经过多次搜查确认,两者运行效率差别很小,这个微小的差别在数据量较大的时候会有明显的效率差别
i++:需要申请一个临时变量保存i进行后续计算,再执行自增。
++i:直接原地自增,再进行后续计算,无需申请内存。
2.在for循环中执行结果区别
执行结果没有区别只在于执行顺序的不同