while想不通一个地方

maobuchishi 2016-08-25 08:41:54
int a = 0;
int b = 1;

while (b<11)
{
a = a+b;
b++;

}
System.out.println(a);
这个第一次循环是a=0+1所以是1, 第二次是a=1+2等于3, 第三次a=3+3等于6。 我想不通的是b++已经在循环里面了为什么第一次不是a=0+2啊? 我试过吧b++放在a=a+b的上面结果是65也就是说他的第一次循环是a=a+2这么算的
...全文
496 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intboy 2016-08-31
  • 打赏
  • 举报
回复
debug解决所有疑惑
FooooDle 2016-08-31
  • 打赏
  • 举报
回复
建议楼主还是debug调试跟踪看一下吧。。,代码按从上到下的顺序执行下来的啊
aim_academy 2016-08-31
  • 打赏
  • 举报
回复
设置一下“断点”,单步运行,看看它的执行过程/顺序,可能会有些心得!
Ordinary-1995 2016-08-31
  • 打赏
  • 举报
回复
程序是从顶向下按顺序执行,先执行a=a+b,然后才执行b++,如果你换了顺序,执行顺序就变为先执行b++,然后执行a=a+b
qq_25914321 2016-08-31
  • 打赏
  • 举报
回复
++b才是运算前先加,b++是运算后才加,很简单的,基础知识不太好哦
qq_25402741 2016-08-31
  • 打赏
  • 举报
回复
对呀,循环语句也是按顺序执行的,你进入循环就先执行了a=a+b,那个时候下面的b++还没有执行,所以b的值那时候没有改变,还是1呀。
wqc8994 2016-08-31
  • 打赏
  • 举报
回复
楼上说的都对
菲莱 2016-08-29
  • 打赏
  • 举报
回复
楼主我的回复有用么?有用给我加分啊
小西瓜籽 2016-08-26
  • 打赏
  • 举报
回复
运行时是按照代码的先后顺序按顺序执行的,所以结果会不一样
老许要老婆么 2016-08-26
  • 打赏
  • 举报
回复
我去! 好好的一段代码让你解释的把我给说懵了!
sinat_35954013 2016-08-26
  • 打赏
  • 举报
回复
a=a+b执行之后才执行b++
angel鹿 2016-08-26
  • 打赏
  • 举报
回复
b++ 要执行完这句才会自加,
huyaowei789 2016-08-26
  • 打赏
  • 举报
回复
兄弟,代码是按顺序执行的,你把b++放a+b前面就是你要的那种结果了
  • 打赏
  • 举报
回复
加几条打印语句跟踪一下
菲莱 2016-08-26
  • 打赏
  • 举报
回复

我加了跟踪,希望能帮助你
【星星之火】 2016-08-25
  • 打赏
  • 举报
回复
按顺序执行啊,不然不就乱了。
codingjav 2016-08-25
  • 打赏
  • 举报
回复
不一样吧....
一帆风舜 2016-08-25
  • 打赏
  • 举报
回复
兄弟你想多了,这个是按顺序执行的。你先执行的a=a+b,再执行b++;调了顺序两句话执行的顺序也变了

62,614

社区成员

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

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