for(int i=0;i<10;i++)和for(int i=0;i<10;++i)的区别 如题for(int i=0;i<10;i++)for(int i=0;i<10;++i)这两者有什么区别?javafor循环i++++i 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 i++++i的区别C的第一堂讲的就是... i++具有滞后性++i具有提前性例如:int i=0;System.out.println(i++);这里结果为:0System.out.println(++i);这里结果为1 其实没啥区别,i++是指调用i之后加一,++i是指调用i之前加一,调用i的值都是一样的,一般都是用i++, 可能还有个误解,之前看到过,我刚想起来了,for循环是先执行前两个条件,再执行最后一个条件。例如:[align=left]for(int i=0;i<10;i++){ System.out.println(i++); }[/align]第一次执行前两个条件,满足,输出i=0,而后i++,i变成1,再执行for循环的第三个条件i++,i变成2;执行第二次循环,i是2,还是满足前两个条件,输入2;………………而[align=left]for(int i=0;i<10;++i){ System.out.println(++i); }[/align]第一次执行前两个条件,满足,因为是输出++i,所以i先加一再输入,所以第一次输出1,而后执行for循环的第三个条件++i,i变成2;执行第二次循环,i是2,满足前两个条件,因为是输出++i,所以i先加一再输出,所以第二次出入i=3;…………………… 单独就问题中的for没有什么区别,但是当单独讨论i++和++i时就有区别了,例如:a=i++,执行完后的a值是i原来的值,i值加了1,相当于a=i; i=i+1; 而a=++i相当于,i=i+1; a=i; 在这个循环里没有区别。但是在如果在其它地方的话就有区别咯。比如:int i=0 if(i++ == 1){}int i=0 if(++i == 1){} 在这里没有区别,一般只有在有赋值的情况下才会表现出来,比如a = i++; 和 a = ++i;前者先赋值后增加,后者先增加后赋值,是运算符的优先性决定的。 i++和++i是有区别的,但是在for循环里,你这样用,是没区别的 结果是一样的,只不过过程不一样,前者是先取i的值再加1,后者是先加1,后取i得值,结果都是i=9; 在这个for循环中是没有区别的,前缀和后缀自加(减)会在你复合语句中有区别,比如 int x=1;int a=x++; 后a=1,x=2;(先赋值,x再自加)int a=++x; 后a=2,x=2;(x先自加,再赋值) 在for循环里面是没有区别的 但是在运算的时候就有区别了例如:int a = 10;int b = a++;out.print(b); 打印10,但是这个时候a的值确是11了int c = 10;int d = ++c;out.print(d); 打印11,c的值也变成了11; 有些做法,强调的是习惯,不是对错,习惯用十十i这种,在用operator十十时,你就赚了,那会快不少! oop 帮忙注释一下代码吧 求助JAVA连ORACLE问题 多线程的例子中的sleep怎么无效呢? Applet中图像异步加载的疑问 关于使用包的servlet 菜鸟问题:什么是对等体? 请帮帮忙 我没有分了,帮帮我吧。。。。。! 北京公司招聘! Software caused connection abort: recv failed 用exe4j做出来的exe文件出现问题,求帮助
++i
的区别C的第一堂讲的就是...
++i具有提前性
例如:
int i=0;
System.out.println(i++);
这里结果为:0
System.out.println(++i);
这里结果为1
例如:
[align=left]for(int i=0;i<10;i++){
System.out.println(i++);
}[/align]
第一次执行前两个条件,满足,输出i=0,而后i++,i变成1,再执行for循环的第三个条件i++,i变成2;执行第二次循环,i是2,还是满足前两个条件,输入2;………………而
[align=left]for(int i=0;i<10;++i){
System.out.println(++i);
}[/align]
第一次执行前两个条件,满足,因为是输出++i,所以i先加一再输入,所以第一次输出1,而后执行for循环的第三个条件++i,i变成2;执行第二次循环,i是2,满足前两个条件,因为是输出++i,所以i先加一再输出,所以第二次出入i=3;……………………
i=i+1;
而a=++i相当于,i=i+1;
a=i;
int i=0 if(i++ == 1){}
int i=0 if(++i == 1){}
a = i++; 和 a = ++i;前者先赋值后增加,后者先增加后赋值,是运算符的
优先性决定的。
比如 int x=1;
int a=x++; 后a=1,x=2;(先赋值,x再自加)
int a=++x; 后a=2,x=2;(x先自加,再赋值)
例如:int a = 10;
int b = a++;
out.print(b); 打印10,但是这个时候a的值确是11了
int c = 10;
int d = ++c;
out.print(d); 打印11,c的值也变成了11;