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

双重for的break还是有疑问!
//判断数组dealt成员的face值是否相等,并打印结果
for(int   i=0;i <5;i++){
    for(int   j=0;j <5;j++){
if(i==j)
continue;
  String   I=dealt[i].face;
String   J=dealt[j].face;
  if(I.equals(J))         {
         
           

//if语句里嵌套双重for循环,最后用2个break跳出循环体!              
  for(int   m=0;m <5;m++)
for(int   n=0;n <5;n++){
  if   (m==i||m==j||n==i||n==j||m==n)
continue;
                           
  String   M=dealt[m].face;
  String   N=dealt[n].face;
if(M.equals(N))
showStatus( "该手牌有两对牌 ");  
else
showStatus( "该手牌有一对牌但没有两对牌 ");
break;
  }
  break;
  }
             
         
else
showStatus( "没有一对牌 ");
             
//此处同理,2个break最终跳出大的循环体!
                  break;
  }      
       
break;

  }      


上次吸取教训修改了一下,但是问题又来了,打印结果只有后面两条语句,没有 "该手牌有两对牌 "!

烦请打人告知。        

------解决方案--------------------
说实话,程序设计得很差!
合理的设计应该是:
排序
判断一下相同的牌的数量,设置诸如 4牌相同、3牌相同和成对数量
最后根据上述标记数量做后继处理