猿问

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

#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 求推导过程!

人到中年有点甜
浏览 117回答 3
3回答

浮云间

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

LEATH

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=32.//第2次for循环,请参照上一步i=6;a=4;i=7;i=8;

杨__羊羊

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