关于C++是do while和A++的疑问?

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:27:27
#include "qipai.h"

#include<iostream>
using std::cout;
using std::endl;
void main()
{
int i(1),a(0);
for(;i<=5;i++)
{
do{
i++;
a++;
}
while(i<3);
i++;
}
cout<<a<<","<<i<<endl;
system("pause");
}

有能帮我把a和i的值,怎么个来的说明一下吗?
a=3
i=8

其实你调试一下,你就全明白了,你不能光是看程序,你要学会调试程序。
你先把鼠标放在int(1),a(0); 这条语句前面,然后按F9键,然后按F5键。再按F10键,走一步按一步F10键(F10是单步调试,程序运行一行按一下。)

注:在按F5键以后,先不要按F10键,你在程序的代码下面可以看到两个框,你在右边的框的NAME下面分别输入两个变量,一个a,一个i然后再F10,F10调试,你就明白了!

do while是先执行语句在进行判断!!因此当第一次for循环结束后i就等于5了。由于i小于5继续循环但是当走do while循环时执行里面的语句后跳出。最终出来后i=8,a=3。
最好方法是debug一下看看过程!

首先i=1, a=0;
第一次for
第一次do
i=2, a=1;
t第二次do
i=3, a=2; 此时i=3所以退出do循环
i++后i=4
第一次for的i++后i=5
第二次for
i=5, a=2
第一次do
i=6, a=3; 此时i=6>3,所以退出do循环
i++后i=7;
第二次for的i++后i=8
第三次for,发现i=8>5,所以退出for循环
最后的i=8, a=3

i=1
a=0
i<=5 i=2 a=1
i<3 i=3 a=2
i>=3 i=4
i=5
i<=5 i=6 a=3
i>=3 i=7
i=8
i>5
cout<<a<<i