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

关于do while 和a++的问题

ily1066 发布于 2008-12-02 17:43, 891 次点击
#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");
    }
得出来的结果3和8,我怎么想也没办法想通他是怎么个解法会是等于这数的,哪位高手指点一下!!
6 回复
#2
maoguoqing2008-12-02 17:57
把你的 for循环部分改称while循环就好理解一点

while ( i<=5)
    {
        do{
            i++;
            a++;
        }
        while(i<3);
        i++;

        i++;//for循环的i++
    }
#3
a198705022008-12-02 23:48
一开始:i=1,a=0;
进入do。。。while循环:i=2,a=1;i=3,a=2;跳出此循环
然后i=4;i=5;
判断for循环,i=5,再做一次do。。。while:i=6,a=3;跳出此循环
i=7;i=8。
#4
hitcolder2008-12-03 00:34
以下是引用a19870502在2008-12-2 23:48的发言:

一开始:i=1,a=0;
进入do。。。while循环:i=2,a=1;i=3,a=2;跳出此循环
然后i=4;i=5;
判断for循环,i=5,再做一次do。。。while:i=6,a=3;跳出此循环
i=7;i=8。


顶,正解,不过楼主为什么要用“using std::cout;using std::endl;”显式的调用std的成员函数呢,多麻烦啊。
#5
h130773959592008-12-03 11:21
嗯,不错不错!
#6
s01u2008-12-03 14:46
#include<iostream>
using std::cout;
using std::endl;
int main()
{
    int i(1),a(0);
    for(;i<=5;i++)
    {
        do{
            i++;
            a++;
            cout<<"*\t"<<i<<'\t'<<a<<endl;;
        }
        while(i<3);
        i++;
    }
cout<<a<<","<<i<<endl;
system("pause");
    }




*       2       1
*       3       2
*       6       3
3,8
请按任意键继续. . .
1