为什么会这样

zhangqh2012 2010-05-20 09:44:12
int x=10,y=10,i;
for(i=0;x>8;y=++i){
System.out.println((x--) + "##" + y);
}
这段代码在java环境下运行,会打印
10##10
9##1
为什么会这样啊?
正确答案是
10##1
9##2
吧?
...全文
119 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangqh2012 2010-05-20
  • 打赏
  • 举报
回复
谢谢各位,俺知道了
tutengsnow 2010-05-20
  • 打赏
  • 举报
回复
所以啊,第一次执行print的时候y=++i这个根本没执行到,
tutengsnow 2010-05-20
  • 打赏
  • 举报
回复
就是,第一次执行的时候是先执行i=0;再执行x>8;若其值为真执行内嵌语句的,然后执行y=++i,若为假则结束循环,执行for语句下面的一个语句。
tutengsnow 2010-05-20
  • 打赏
  • 举报
回复
就是,第一次执行的时候是先执行i=0;再执行x>8;若其值为真执行内嵌语句的,然后执行y=++i,若为假则结束循环,执行for语句下面的一个语句。
WilliamTau 2010-05-20
  • 打赏
  • 举报
回复
y = ++i是整个for语句跑完一遍才运行的
tcm441224375 2010-05-20
  • 打赏
  • 举报
回复
int x=10,y=10,i;
for(i=0;x>8;y=++i){
System.out.println((x--) + "##" + y);
}
for循环的执行过程
i=0,比较x>8,如果结果为真,则执行循环体
x--表过式的值是x的值,然后再减1
输出10##10,
再执行y=++i



zxcv991 2010-05-20
  • 打赏
  • 举报
回复
。。。。。。。。
phl4000 2010-05-20
  • 打赏
  • 举报
回复
了解一下for循环执行的过程就明白了
keeya0416 2010-05-20
  • 打赏
  • 举报
回复
你的 for 内部还没执行完 怎么会 执行 y = ++i; 呢
wangjn1982 2010-05-20
  • 打赏
  • 举报
回复
++i是先赋值后增加,i++是先增加后赋值
lyz0622_1022 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xjl756425616 的回复:]

原因很简单,你的正确答案是错的,事实胜于雄辩。。
[/Quote]


顶顶顶
werosh 2010-05-20
  • 打赏
  • 举报
回复
你第一次print的时候y=++i还没执行呢,等第二次print的时候y=++i执行了一次,当然是那个结果了,查一下for循环的执行过你就明白了。
wutian4567268 2010-05-20
  • 打赏
  • 举报
回复
因为y=++i实在for程序块最后执行的
lhlove271015 2010-05-20
  • 打赏
  • 举报
回复
应该是:
10##10
9##2

lodachi 2010-05-20
  • 打赏
  • 举报
回复
for循环的执行过程。。
狄默默斯基 2010-05-20
  • 打赏
  • 举报
回复
原因很简单,你的正确答案是错的,事实胜于雄辩。。

62,620

社区成员

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

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