今天在看java的i++ 和++i 的区别,感觉自己还是会绕。正好整理下。
i++:先赋值,后计算;
++i;先计算,后赋值。
看下面代码:
public class Text {
public static void main(String[] args) {
int i = 1;
int j = 1;
int k = 1;
i++;
System.out.println("j++ is "+ j++);
System.out.println("i is "+i);
System.out.println("++k is "+ ++k);
}
}
执行结果:
j++ is 1
i is 2
++k is 2
我呢,原先是结合for循环记忆的,
因为for循环里的都是i++; 我有写了for循环,i++ 和 ++i
for(inti =0; i <10; i++) {
System.out.println(i);
}
与
for(inti =0; i <10; ++i) {
System.out.println(i);
}
结果打印都是 0 到 9 。。
什么鬼,于是我就搜了搜关于for循环的:
for循环的执行顺序如下:
for(sta1;sta2;sta3)
{
sta4;
}
1.进入循环执行sta1;//只是进入的时候执行.
2.执行sta2;//条件为真才执行sta4,不然就跳出for了.
3,执行sta4;
4,执行sta3;
5,再回到第2步开始执行
哈哈,大家看看下面结果是什么呢
publicclassT2 {
staticbooleanfoo(charc) {
System.out.print(c);
returntrue;
}
publicstaticvoidmain(String[] argv) {
inti =0;
for(foo('A'); foo('B') && (i <2); foo('C')) {
i++;
foo('D');
}
}
}
(答案是ABDCBDCB)
菜鸟一枚,如有不对,请指正。
2016、05、22 更新
int j = 0;
for(int i=0;i<10;i++)
j = j++;
System.out.println(j);
此时会输出什么呢?
(答案是0,只有一个0)
参考:http://blog.csdn.net/lee_yaob/article/details/7733618;
http://blog.csdn.net/allenjay11/article/details/51155016