for的语法
for (语句1; 语句2; 语句3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
正常情况下 i++和++i的区别
前者是:先引用,后增加,
int i=10;
System.out.println(i++);//此时输出的是10
以上代码等价与
int i=10;
System.out.println(i);
i=i+1;
后者是:先增加,后引用,
int i=10;
System.out.println(++i);//此时输出的是11
以上代码等价与
int i=10;
i=i+1;
System.out.println(i);
for循环中
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;
}
因此无论是i++ 还是 ++i,for循环中所引用的都是 i 计算后的值,因此在for循环中 ++i 和 i++ 的结果是一样的,但是性能是不同的。
在大量数据的时候++i的性能要比i++的性能好。
原因:
i++由于是在使用当前值之后再+1,所以需要一个临时的变量来转存。
而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能。