注册 登录
编程论坛 C++教室

求助:简单C++的for语句的一个嵌套,输出结果我转不过来弯了

xuexi005 发布于 2012-08-18 13:51, 707 次点击
#include<iostream.h>
void main()
int i(1),j(0);
for(;i<=5;i++)
{
do{
i++;
j++;
}while(i<3);
i++;
}
cout<<i<<","<<j<<endl;
}
输出结果是8,3
我怎么一直感觉是应该是7,3
10 回复
#2
xuexi0052012-08-18 13:53
晕,main后少个
{
#3
jarryjsq2012-08-18 15:46
是输出8,3
怎么讲不好讲。。。你要知道即使i>3了,do{。。。}里面的内容照样执行!还搞不明白,就调试一下就懂了。。。
i     j
1     0
2     0
2     1
3     1
3     2
4     2
5     2
6     2
6     3
7     3
8     8
#4
jarryjsq2012-08-18 15:47
最后一个写错了,3写成了8
#5
pangding2012-08-18 18:24
不知道楼主是在哪卡的壳,我觉得比较容易漏想的可能是最后一次,虽然 i 和 j 已经变成 7,3 但是退出外层 for 循环的时候还是要先 i++ 一下,才会去做 i <= 5 的比较。
#6
C_dream2012-08-18 22:59
i<3的时候也执行do ,还要记住for循环里面的i++
#7
houbincarson2012-08-19 00:19
#include <iostream>
using namespace std;
void main()
{
    int i(1), j(0);
    for (;i <= 5;i++)
    {
        do{
            i++;

            j++;
            cout << i << "," << j << endl;
        }while (i < 3);
        i++;
        cout << i << "," << j << endl;
    }
    cout << i << "," << j << endl;
}
怎么c++代码规范不一样!
#8
xuexi0052012-08-19 09:43
谢谢jarryjsq &&pangding
就是最后退出的for 里(;i <= 5;i++)
第三个语句忘记+1了
#9
xuexi0052012-08-19 09:47
回复 5楼 pangding
版主还是经验丰富啊,我就是出错在你说的那个地方。因调试显示的也是7,出来FOR循环就成8了
#10
会分手的空气2012-08-20 19:27
你真狠啊,这都在纠结
#11
千里草lrn2012-08-22 20:08
程序代码:
#include<iostream.h>
void main()
{

int i(1),j(0);
for(;i<=5;i++)
{
do{
i++;
j++;
cout<<"while"<<':'<<i<<","<<j<<endl;
}while(i<3);
i++;
cout<<"for"<<':'<<i<<","<<j<<endl;
}
cout<<i<<","<<j<<endl;
}

楼主运行我这个代码就知道了
1