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。是有点绕,但一步一步推还是能推出来的。看看这样能推出不

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;

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,全手打,谢谢采纳~~
- 3 回答
- 0 关注
- 116 浏览
添加回答
举报