以下程序的输出结果为什么是:8,3?
知道者请写下它的工作步骤,越详细越好!
#include <iostream>
using namespace std;
int main()
{
int i(1),a(0);
for(;i<=5;i++)
{
do
{
i++;
a++;
}while(i<3);
i++;
}
cout<<i<<","<<a<<endl;
return 0;
}
以下程序的输出结果为什么是:8,3?
知道者请写下它的工作步骤,越详细越好!
#include <iostream>
using namespace std;
int main()
{
int i(1),a(0);
for(;i<=5;i++)
{
do
{
i++;
a++;
}while(i<3);
i++;
}
cout<<i<<","<<a<<endl;
return 0;
}
int i(1),a(0);// i = 1, a = 0;
for(;i<=5;i++)
{
do
{
i++;// i = 2, a = 0;
a++;// i = 2, a = 1;
}while(i<3);// 此处判断为真,继续do语句;
do
{
i++;// i = 3, a = 1;
a++;// i = 3, a = 2;
}while(i<3);// 此处判断为假,结束do语句;
i++;// i = 4, a = 2;
}
//
for(;i<=5;i++)// 先执行for中的第三句 i++, 这时i=5,a=2;
// 再判断 i<=5 为真,继续for循环
{
do
{
i++;// i = 6, a = 2;
a++;// i = 6, a = 3;
}while(i<3);// 此处判断为假,结束do语句;
i++;// i = 7, a = 3;
}
for(;i<=5;i++)// 先执行for中的第三句 i++, 这时i=8,a=3;
// 再判断 i<=5 为假,结束for循环
i=1,经过do……while循环后变为2(a=1),2《3,最后变为3(a=2),然后i++,i=4,然后for里面的i++,i=5,
又过do……while循环变为6(a=3),6》3,然后i++,i=7.
dowhile是先do在用while的值判断还do不do了。