0

ソースコードを見ました:

public class Test{
   public static void main(String[] args)
   {
    counting: 
       for(int k = 0; k < 100; k++)
       for(int i = 0; i < 100; i++)
         if(i == 9) break counting;
   }    
}

今、次のようにループを実装しました。

public class Test{
   public static void main(String[] args)
   {
      counting: 
      for(int k = 0; k < 100; k++)
      {
         System.out.println(k);//to see how many times the outer loop runs 
         for(int i = 0; i < 100; i++)
         {            
             if(i == 9) break counting;
         }
     }
}

間違っていなければ、外側のループは 1 回実行され、内側のループは 9 回実行されることがわかりました。これは、フロー制御が実装されたネストされたループであるという結論に達しました。私が理解していないのは、の役割は何countingですか?

4

5 に答える 5

3

counting:はラベルです。電話すると

break counting;

コードは外側の for ループの最後にジャンプします。

于 2013-06-08T10:38:56.863 に答える
2

breakステートメントで停止するループを定義します。ラベルを使用しない場合、内側のループは中断されますが、外側のループは正常に続行されます。

于 2013-06-08T10:40:07.587 に答える
0

breakループを入れ子にした場合、 にしたい場合for loopは、 target を に定義する必要があるbreakため、それを解決できますlabel。例:

lb1:
for(int i = 0; i < 10;i++){
  lb2:
  for(int j = 0; j < 10;j++){ 
     for(int i = 0; i < 10;i++){
         if(a) break lb2; // this will break second loop
         if(b) break lb1; // this will break first loop
     }
  } 
}
于 2013-06-08T10:39:50.583 に答える
0

あなたが理解できることを願っています!

public class Test {
    public static void main(String[] args) {
        counting: for (int k = 0; k < 100; k++) {
            System.out.println(k);
            for (int i = 0; i < 100; i++) {
                if (i == 9) {
                    System.out.println("I'm going to break!");
                    break counting;    // -----┐
                }                      //      |
            }                          //      |
        }                              //      |
        System.out.println("Broken!"); // <----┘
    }
}
于 2013-06-08T10:49:20.283 に答える