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

双重for中break的疑问已解决,特发此帖!!
//最后的感想就是看到for循环不要怕,要注意适当使用break/continue,最重要的是思路要清晰,同时谢谢论坛那位达人提醒我用标志位!!!  

//目标:赌局中,判断5张牌中是否有点数(face)相等的牌,并打印结果

//标志位A和B
  boolean   A=false;
  boolean   B=false;
  //外部for1
  for(int   i=0;i <5;i++){
            //内部for2
                for(int   j=0;j <5;j++){
//2个变量i和j不等,否则跳出此次内部的循环  
                        if(i==j)
        continue;
                        //I和J分别为牌的点数
                        String   I=dealt[i].face;
        String   J=dealt[j].face;
           
      if(I.equals(J)){
                      //外部for3                          
                        for(int   m=0;m <5;m++){
                      //内部for4
                                      for(int   n=0;n <5;n++){
                //4个变量满足两两不等的条件,否者跳过此次内部的循环        
                                        if   (m==i||m==j||n==i||n==j||m==n)
                            continue;
                  //M和N分别为牌的点数                            
                    String   M=dealt[m].face;
                    String   N=dealt[n].face;
                if(M.equals(N)){
      showStatus( "恭喜!!该手牌有两对牌耶!! ");  
              A=true;
                break;
          }//if结束
}//for4结束
                //如果找到有这样的两对牌了就退出for3
                                                  if(A)
                                  break;
              //每次循环都打印以下语句(除非条件满足break了)        
            showStatus( "不错,该手牌有一对牌! ");
          }   //for3结束
           
                                //   如果出现以上两种结果的任何一种就退出for2并设置标志位B为true
                                              B=true;