-1

count が 9 になったら 2 つの for ループを終了したい。breakfor を使用しますが、最初の for ループからしか終了できません。どうすればできますか?

       ArrayList<String> list = new ArrayList<String>();
        int count = 0;
        System.out.println("Before entering to loop");
        for(int i=0;i<5;i++){
            list.add("XYZ"+i);
            for( int j=0;j<5;j++){
                list.add("ABC"+j);
                count++;
                if(count==9){
                    System.out.println("I want to exit from here.");
                    break;
                }
                System.out.println("i="+i+"::j="+j);
            }
            System.out.println("------------");
        }
        for(String str:list){
            System.out.println(str);
        }
    }
4

7 に答える 7

5

ラベルを使用できます:

OUTER: for (...) {  // <--
    ...
    for (...) {
        if (...)
            break OUTER;  // <--
    }
}

これは、Java チュートリアルのBranching StatementsセクションとJLS §14.7で説明されています。

于 2013-08-26T14:02:12.870 に答える
1

ラベルに行くことができます

ラベル:

ループの先頭にラベルを付けることができます。ラベルは識別子で、その後にコロンが続きます。それはコード内の単なる場所です。次に、break に続けてラベル名を使用して、ラベルを使用してループから抜け出すことができます。

例えば ​​:

public void twoNum( int num, int val )
{
OUTER_LOOP: // OUTER_LOOP is a label
  for ( int i = 0 ; i < num ; i++ )
  {
      for ( int j = 0 ; j < num ; j++ )
      {
         if ( i + j >= 2 * val )
            break OUTER_LOOP ;
         val = val / 2 ;
      }
  }
  // break comes here if it runs

インクリメンタル Java

于 2013-08-26T14:03:00.817 に答える
0
 boolean outer=false;
 for(int i=0;i<5;i++){
        list.add("XYZ"+i);
        for( int j=0;j<5;j++){
            list.add("ABC"+j);
            count++;
            if(count==9){
                outer= true;
                System.out.println("I want to exit from here.");
                break;
            }
            System.out.println("i="+i+"::j="+j);
        }
        System.out.println("------------");
        if(outer==true)
        break;
    }
于 2013-08-26T14:05:15.940 に答える
0

カウントが 9 に達したときに内側のループに設定されるフラグを導入できます。外側のループには、そのフラグ値をチェックする if ステートメントがあります。true の場合、外側のループも中断します。このようなもの:

boolean breakLoop = false;
for(int i=0;i<5;i++){
            list.add("XYZ"+i);
            for( int j=0;j<5;j++){
                list.add("ABC"+j);
                count++;
                if(count==9){
                    System.out.println("I want to exit from here.");
                    breakLoop = true;
                    break;
                }
                System.out.println("i="+i+"::j="+j);
            }
             if(breakLoop)
                 break;
            System.out.println("------------");
        }
于 2013-08-26T14:01:22.603 に答える