日期:2014-05-20  浏览次数:20647 次

求大神们帮我看看这段代码
while(j<i)
{
   if((packagepts2[i].l==packagepts2[j].l)&&(packagepts2[i].w==packagepts2[j].w)&&                             (packagepts2[i].h==packagepts2[j].h))
  {
      R=packagecolor[i].r=packagecolor[j].r;
      G=packagecolor[i].r=packagecolor[j].r;
      B=packagecolor[i].r=packagecolor[j].r;
      break;
   }
   j++;
 }
   j=0;
   packagecolor[i].r=R=(R+80)%256;
   packagecolor[i].g=G=(G+80)%256;
   packagecolor[i].b=B=(B+80)%256;


我的意图是:当执行while循环时,若j取某个值时满足if的判断语句,执行完if之后,立即跳出while循环。   当所有的j的可能取值都不满足if语句时,退出while循环,转而执行
  {
          j=0;
           packagecolor[i].r=R=(R+80)%256;
           packagecolor[i].g=G=(G+80)%256;
            packagecolor[i].b=B=(B+80)%256;
  }

我知道我这个程序段有问题,不管while语句内的程序是否满足,都会执行while循环之外的那一部分程序。
所以恳请大神们给我一点建议。
------最佳解决方案--------------------

//加一个状态标志如
bool flag=false;
while(j<i)
{
  if(当满足条件时)
   flag=true;
 .................
}
if(flag==false)
{
//你的程序
}

------其他解决方案--------------------
自己顶一下,自己顶
------其他解决方案--------------------
再来顶一个,顶
------其他解决方案--------------------
我再帮你顶一下