自己试了一下,感觉没什么区别?
public class For{
public static void main(String[] args){
for(int i = 0;i < 10; i++){
System.out.println(i);
}
System.out.println("--------------------");
for(int i = 0;i < 10; ++i){
System.out.println(i);
}
System.out.println("==================");
}
}输出结果都一样,到底有区别不?
public class For{
public static void main(String[] args){
for(int i = 0;i < 10; i++){
System.out.println(i);
}
System.out.println("--------------------");
for(int i = 0;i < 10; ++i){
System.out.println(i);
}
System.out.println("==================");
}
}输出结果都一样,到底有区别不?
++i:先增加后引用
在for循环中是一样的
但很多地方是不一样的,比如:
int j;
int m;
j=++i;
m=i++;
这时m与j的值是不一样的
++i 预先在i基础上加1,然后在i所在的表达式中使用i的新值
试一下,把自增变量放到循环体的头和尾,只要循环体和自增变量有关,结果就不一样
如: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=i+1在使用i的值
而i++是先使用i的值再执行i=i+1。例如:i的原值是5,则
对于 j=++i,j的值为6;
对于 j=i++,j的值为5,然后j的值变为6。
System.out.println(i);
System.out.println(i++);
System.out.println(i);
System.out.println(++i);不就看出来了吗
{
return i+1;
}int operator ++ (int flag)//后置操作符
{
int j = i;
i += 1;
return j;
}
在for循环中使用++i要比使用i++,成本低其它的区别,楼上的兄弟们都说过了
for (int i = n; i > 0;) {
System.out.println(--i);
}
比
for (int i = 0; i < n;) {
System.out.println(++i);
}
实惠一些,因为跟0比较比跟非0数比较快好象
++i:先增加后引用
在for循环中是一样的
但很多地方是不一样的,比如:
int j;
int m;
j=++i;
m=i++;
一个是先引用后自加.一个先自加再引用。
i++:先引用后增加
++i:先增加后引用问问题时忘了说清楚了,不好意思。
只是在复习SCJP时,突然一题中的for循环是以++i来增量的,以为有什么区别,但自己试了下,又试一样的,所以想和大家讨论下。while循环中试了一下,也是一样的。
++把它的值自增1,--把它的值自减1。这两个运算符既可以出现在操作数之前(前缀),也可以出现在操作数之后(后缀)。前缀++i是先自增1然后将其赋值(自增在前赋值在后;若i=5 ++i i即为6),后缀i++是先赋值再进行自增1运算(赋值在前,自增在后;若i=5 i++ i即为5,然后i为6),--亦然。
只要不和赋值语句连在一起,的确是没有区别
-----------------------------------------------------------------------------------
错!!!
那for(int i=0; i<10; i++) 与 for(int i=0; i<10; ++i) 是一样的吗???
都说了,++i与i++的内存开销不同!!!
执行次数越多,效果越明显。
++i:先增加后引用
在for循环中是一样的
但很多地方是不一样的,比如:
int j;
int m;
j=++i;
m=i++;
这时m与j的值是不一样的