双重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牌相同和成对数量
最后根据上述标记数量做后继处理