今天在看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循环的:
for循环的执行顺序如下:
for(sta1;sta2;sta3)
{
sta4;
}
1.进入循环执行sta1;//只是进入的时候执行.
2.执行sta2;//条件为真才执行sta4,不然就跳出for了.
3,执行sta4;
4,执行sta3;
5,再回到第2步开始执行
哈哈,大家看看下面结果是什么呢
- public class T2 {
- static boolean foo(char c) {
- System.out.print(c);
- return true;
- }
- public static void main(String[] argv) {
- int i = 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