在foreach循环里查询到符合条件的对象后,跳出foreach循环和外面的while循环。下面的代码不行,因为bool值f并没有被改变,我该如何做?
                                bool f = true;
                                while (f)
                                {
                                    foreach (Yj y in gl.list)
                                    {
                                          if(……)
                                          {
                                                ……
                                                f = false;    
                                                break;
                                          } 
                                          else
                                         {
                                                Continue;
                                          }
                                    }
                                }
                                        …….
                                        …….

解决方案 »

  1.   

    while循环中foreach循环后面判断f的值为false则break
    while
    {
        foreach...
        if(!f)
        {
             break;
        }
    }
      

  2.   

    代码表明,如果foreach里的if成立,那就是一个死循环了。
    如果foreach无条件成立,下一步你想怎么做,依然跳出while吗?如果是这样,那while语句就是多余的。
      

  3.   

    回#3  我想让foreach里的if条件成立后跳出外面的while循环,不想让它成为死循环。
    外面的while是有意义的  我没写出上下文, 如果没有合适的if条件,我还要继续循环list,list是隔一段时间变化一次的
      

  4.   

     while (f) 
                                    { 
                                        if(gl.List.Count==0)
                                          break;
                                           //给分给分
                                        foreach (Yj y in gl.list) 
                                        { 
                                              if(……) 
                                              { 
                                                    …… 
                                                    f = false;    
                                                    break; 
                                              } 
                                              else 
                                            { 
                                                    Continue; 
                                              } 
                                        } 
                                    } 
      

  5.   

    要不把while放后面去?
    Do
    {}
    while
      

  6.   

    bool值没有改变,显然是if的条件没有满足;你这么写不会有死循环
      

  7.   

    这确实是个无限循环,我试了也有条件成立但跳不出外层的while循环另外我这个list是一段时间改变一次的  所以没有适合的if条件 就会继续执行foreach循环