黑马程序员技术交流社区
标题:
简单循环for遇到的问题
[打印本页]
作者:
陈佳
时间:
2015-4-2 22:58
package Xun;
public class XunHuan {
public static void main(String[] args) {
int x = 0;
for (;;) {
x = x++;//++是自增运算,x初始化为0,0自增以后还是0,所以x的值一直都是0,所以打印结果一直是0
System.out.println(x);
}
}
}
复制代码
作者:
m-勇敢的心
时间:
2015-4-2 23:01
你把x++放输出语句下边
作者:
快乐ABC
时间:
2015-4-2 23:36
的确是这样的,以前没注意呢
作者:
黑马:二师兄
时间:
2015-4-3 21:44
!!!!!!!!!!!!!!!!
作者:
lf027
时间:
2015-4-3 23:16
看吧,晚上老师讲了你没听明白吧,for(;;)本来就是一个死循环,再考虑x,先输出,再赋值,所以打印的就是0
作者:
小七28
时间:
2015-4-4 18:38
首先x初始化是0;然后执行x=x++;
x++中x虽然加 1 了,但是用的是加1 之前的x,所以执行结果是x=0;所以输出是0;for(;;)是死循环,所以输出一直是0;
如果你想输出 1 ,需要把 x=x++;换成 x++;这样输出结果就是 1 了。
作者:
时过境迁
时间:
2015-4-4 19:52
for(;;)里没有条件表达式,初始化值是ture。所以一直循环
作者:
时过境迁
时间:
2015-4-4 19:53
for(;;)里没有条件表达式,初始化值是ture。虽然x自增了,但是条件满足(ture),所以一直循环
作者:
One_M
时间:
2015-4-4 20:35
老问题了...++a和a++的区别...
作者:
Sylvanas
时间:
2015-4-4 20:46
只用x++,才是自增,就是X变量会每次加1
x=x++是先赋值再运算,x=x++后x依然为0
作者:
罗晓飞
时间:
2015-4-4 21:49
你有循环吗??没有就不会自增。。。
作者:
Searching
时间:
2015-4-4 22:10
x=x++;(赋值语句先执行右边的代码)
右边x++是后自增,也就是下次用到x的时候才加1,所以右边的值等于0。
左边的x呢,因为先执行了右边,所以此时x应该等于1了,但是右边的值又赋给了左边,所以输出结果x永远等于0。个人了解,探讨一下,错了勿喷:lol
作者:
Richard926
时间:
2015-4-4 22:20
这是个关于x ++ 和 ++ x的区别,x = x++是先把原先x的值赋值给x后再自增。
作者:
wenhb
时间:
2015-4-4 22:59
x=x++;这句话,x先用再++,x就一直是0,肯定输出一直是0啊
作者:
Catface
时间:
2015-4-4 23:13
多想一下就明白了
作者:
Kewin.java
时间:
2015-4-5 23:15
个人理解:循环一次,内存中的x值变了两次,当运行到x=x++;时,x++是等于0,所以是x=0,但0这时并没有赋给x,而是先x自增了一次,内存中x变为1,然后执行x=0,这时x又变为0,所以x一直是0。(不知道对不对,请大神指导)。
作者:
Dark县令
时间:
2015-4-6 00:42
你x++过后并没有赋值给x,为什么不是0?先运算x就等会x了然后在x++;x的值是为1了但是你并为赋值啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2