for(int i = 0; i<10; i++) {
System.out.println(i);
}
相当于
for(int i=0; i<10;)
{
System.out.println(i);
i++;
}
for(int i = 0; i<10; ++i) {
System.out.println(i);
}
相当于
for(int i=0; i<10;)
{
System.out.println(i);
++i;
}
两者打印结果都为:
0
1
2
3
4
5
6
7
8
9
结论
看结果很容易发现: ① .两者结果一样,都是分两步; a++ 是先自增,后赋值; ++a 是先赋值,后自增; ② .运行时间有所差别,当循环此时较少没多少出入,但是当我们循环的次数上去了那么这差距就有点明显了。然后仔细探考后发现:**在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要。**这样就导致使用i++时系统需要先申请一段内存空间,然后将值塞进去,最后不用了才去释放。多了这么一系列操作时间当然多了啊,最后建议大家以后在写for循环且不影响逻辑的情况下多使用++i,少使用i++
int a = 100;
a ++;
System.out.println("a1="+a);
++ a;
System.out.println("a1="+a);
a += 1;
System.out.println("a1="+a);
a =+ 1;
System.out.println("a2="+a);
a =- 1;
System.out.println("a2="+a);
结论
① .+= 是简写,a += 1就是a = a+1 ② .=+并不是简写,a =+ a直接对a的赋值,±符号代表的是正负(完全可以省略不写),即a =+ b其实就 是a = b
|