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

双重for中的break有疑问了!
//判断数组dealt成员的face值是否相等,并打印结果

for(int   i=0;i <5;i++)
    for(int   j=0;j <5&&j!=i;j++){
          String   I=dealt[i].face;
          String   J=dealt[j].face;
              if(I.equals(J)){
           
            for(int   m=0;m <5&&m!=i&&m!=j;m++)
                for(int   n=0;n <5&&n!=m&&n!=i&&n!=j;n++){
                String   M=dealt[m].face;
                String   N=dealt[n].face;
        if(M.equals(N))showStatus( "该手牌有两对牌 ");  
          else
          showStatus( "该手牌有一对牌但没有两对牌 ");
             
      break;
    }  

}
  else
      showStatus( "没有一对牌 ");
             
  break;
               
  }      

    结果只会打印 "没有一对牌 ",中间的两条语句不打印   。

------解决方案--------------------
多重循环跳出时用标志位:
boolean a = false;
for
{
......
for
{
....
if (true)
{
a = true;
break;
}
}
if (a)
break;
......
}