while()
{
while()
{
}
if(){}
}
能否使外层循环先停止,然后等待一个条件成立后继续循环呢?谢谢

解决方案 »

  1.   

    while()
    {
    if(!)
     continue;
    while()
    {
    }}
      

  2.   

    POSITION pos=ProgramList.GetHeadPosition();
    while(pos!=NULL)
    {
        pProgramObject=(CProgramObject *)ProgramList.GetAt(pos);
    POSITION pos1=pProgramObject->WndList.GetHeadPosition();
    while(pos1!=NULL)
    {
    if(dwExitCode==STILL_ACTIVE)continue;
        pWndObject=(CWndObject *)pProgramObject->WndList.GetAt(pos1);
    // POSITION pos2=pWndObject->PicFileList.GetHeadPosition();
    //         while(pos2!=NULL)
    // {
    //    Parameter *pParameter=new Parameter;
    //        pParameter->pWndObject=pWndObject;
    //        //pParameter->pPicFileObject=m_Wnd.pPicFileObject;
    //    pParameter->pPicFileObject=(CPicFileObject *)pWndObject->PicFileList.GetAt(pos2);
    //    pParameter->pWndObject->m_pNewStatic->ShowWindow(SW_SHOW);
    pThread=AfxBeginThread(AutoDisplayThreadProc,pWndObject);           
    // pWndObject->PicFileList.GetNext(pos2);
    // }
    // pWndObject=(CWndObject *)pProgramObject->WndList.GetNext(pos1);
    //            DWORD dwExitCode; pWndObject=(CWndObject *)pProgramObject->WndList.GetNext(pos1);
                ::GetExitCodeThread(pThread->m_hThread,&dwExitCode);
         
    }
    // ::GetExitCodeThread(pThread->m_hThread,&dwExitCode);
            pProgramObject=(CProgramObject *)ProgramList.GetNext(pos);
    }
    看看着改怎么改呀谢谢
      

  3.   

    POSITION pos=ProgramList.GetHeadPosition();
    while(pos!=NULL)
    {
        pProgramObject=(CProgramObject *)ProgramList.GetAt(pos);
    POSITION pos1=pProgramObject->WndList.GetHeadPosition();
    while(pos1!=NULL)
    {
    if(dwExitCode==STILL_ACTIVE)continue;
        pWndObject=(CWndObject *)pProgramObject->WndList.GetAt(pos1);
    pThread=AfxBeginThread(AutoDisplayThreadProc,pWndObject);           
    pWndObject=(CWndObject *)pProgramObject->WndList.GetNext(pos1);
                ::GetExitCodeThread(pThread->m_hThread,&dwExitCode);
         
    }
            pProgramObject=(CProgramObject *)ProgramList.GetNext(pos);
    }
    帮忙给看一下怎么改呀
    死循环谢谢
      

  4.   

    为什么不把pos记下来,条件成立后下次循环继续从pos开始循环?
      

  5.   

    while(pos1!=NULL)
    {
          if(dwExitCode==STILL_ACTIVE)continue;
    这里当然死循环了,pos1不会变了
      

  6.   

    你可以使用 goto 语句来完成