为了账号安全,请及时绑定邮箱和手机立即绑定

为什么用do while 循环是这个结果

https://img1.sycdn.imooc.com//5d29857700010eff07050404.jpg为什么会是这个结果,而且还会越界

正在回答

4 回答

i没有在外面定义初始值,编译器不知道你的i++是从0开始还是1开始还是从多少开始,而且这里用do while循环的话,会先执行越界的那一次,再然后判断知道越界了,如果一定要用这个循环的话,建议把判断条件改成 i<9

0 回复 有任何疑惑可以回复我~

i都没看到有初始值

0 回复 有任何疑惑可以回复我~
#1

慕函数1353974

一看你就没试过,初始化后跑不起来
2020-03-14 回复 有任何疑惑可以回复我~

do while循环是和for循环不一样的运行机制

0 回复 有任何疑惑可以回复我~

你把i++放在输出后面就不会越界了,你没发现你并没有打印出arr[0]吗?因为你是从arr[1]开始打印的,一直打印到了arr[10],所以越界了

明白请采纳

0 回复 有任何疑惑可以回复我~
#1

weixin_慕尼黑2172883 提问者

为什么呢,i++就是先取值再运行自增啊,就也会有取零的时候输出啊, 如果我上面的逻辑是错误的,那用++i呢
2019-07-13 回复 有任何疑惑可以回复我~
#2

修裾欲溯空 回复 weixin_慕尼黑2172883 提问者

是的,你上面的逻辑就是错的,i=0;进入循环,i++,此时i=1;然后再输出,下一层循环,i++,此时i=2;输出,以此类推,改成++i也是一样的结果
2019-07-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

为什么用do while 循环是这个结果

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信