请高手看一看这一段代码为什么不正确

batfree 2002-04-28 08:02:30
class ForTest{
public static void main(String args [])
{int x;
for (x=0;x<10;x=x++)
System.out.println("This is x:"+x);
}
}
我在JCREATOR下编了这一段程序发现竟然是无限循环,
后来我又改写成C++ 程序后相同的FOR 语句可以通过,
请各位大侠解释一下,谢谢。
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eyeieye 2002-04-30
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/671/671289.xml?temp=9.074038E-02
batfree 2002-04-30
  • 打赏
  • 举报
回复
我想知道为什么在c++ 中可以通过而java中却不能呢?
高手请帮忙回答这个问题,
因为我所看的书中说的这个x++和++x
的效果与c/c++中效果是一样的。
参考书是java2: the complete reference
qxjavajava 2002-04-28
  • 打赏
  • 举报
回复
我觉得 FOR(A;B;C) 中C 是步长值,X++ 的意思是先用后加
SO X= X++ = 0 所以无限循环
colin1022 2002-04-28
  • 打赏
  • 举报
回复
x++在java里是先取x的值,再进行++的运算。
也就是说x=x++,x先附值给x=0,后再进行++,运算。
yuanqingfei 2002-04-28
  • 打赏
  • 举报
回复
你应该把x=x++该为x++;
wangweitao 2002-04-28
  • 打赏
  • 举报
回复
你应该把上面的x<10改成x<=10试试,可能行,因为我以前做过这方面的程序
Patrick_DK 2002-04-28
  • 打赏
  • 举报
回复
关键在x=x++这句话

在Java里
x=0;
x=x++;这个x的值仍旧是0

这点和C++不一样的

我现在没时间多说了,你可以搜索论坛,我提过关于这个问题的帖子的
totti81 2002-04-28
  • 打赏
  • 举报
回复
首先,这样的写法毫无意义

其次执行过程是这样的:先把x的原值记录到一个缓冲区,把x加一,把缓冲区的值付给x

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧