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

求讲解过程,为什么c++循环结构的嵌套是这个结果?

求讲解过程,为什么c++循环结构的嵌套是这个结果?

C++ C
人到中年有点甜 2022-05-31 18:14:11
#include <iostream> using namespace std; int main () { int i(0),a(0); for(;i<=5;i++) { do { i++; a++; }while(i<3); i++; } cout<<a<<","<<i<<endl; } 结果:a=4,i=8 求推导过程!
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

i=0时进入for循环,i<5,进入do
while循环,循环结果为i=3,a=3。然后i++,i=4,再是for循环要i++,i=5。i=5<=5,又进入do
while先进行i++,a++,可得a=4,i=6。再判断while(i<3),不符,则i++,i=7。再进入for循环要i++,i=8.判断i=8>5。结束循环,cout<<a<<","<<i<<endl。是有点绕,但一步一步推还是能推出来的。看看这样能推出不

查看完整回答
反对 回复 2022-06-06
?
LEATH

TA贡献1936条经验 获得超6个赞

i=0;a=0;
//初始化
1.
i=1;a=1;
//第1次进入for循环,第1次do...while循环
i=2;a=2;
//第2次do...while循环
i=3;a=3;
//第3次do...while循环
i=4;i=5
//退出do...while循环,执行i++,再执行for循环的第3条语句i++,此时i=5,a=3
2.
//第2次for循环,请参照上一步
i=6;a=4;
i=7;
i=8;



查看完整回答
反对 回复 2022-06-06
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

i和a的初值都为0,
第一个
for循环
,因为i<=5,所以执行do。。。while循环
i自增为3的时候do。。while循环结束,a这时也是3
do
while循环下面又执行了一下i的自增运算,i变为4
下一步执行for语句括号里的i++,i变为5
第二个for循环开始执行,i依然<=5,所以执行do
while循环,只执行一次,i自增为6,a由3自增为4,,do
while循环结束,执行一次i++,i变为7,接下来执行for语句括号里的i++,i变为8,
第三次for循环开始,因为i(=8)》5,for循环结束,
所以,最后,i的值为8,a的值为4,全手打,谢谢采纳~~


查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号