public class TestLabel {
    public static void main(String[] args) {
      int counter = 0;
      ll:
         for(int i=0;i<10;i++){
            gg:
               int j=0;
           while(j++<10){
              if(j>i) break gg;
               if(j==i){
                 counter ++;
                 continue ll;
             }
           }
         }
     System.out.println(counter);
   }
}

解决方案 »

  1.   

    public class TestLabel {
    public static void main(String[] args) {
    int counter = 0;
    ll: for (int i = 0; i < 10; i++) {
    gg: for (int j = 0; j < 10; j++) {
    if (j > i)
    break gg;
    if (j == i) {
    counter++;
    continue ll;
    }
    }
    }
    System.out.println(counter);
    }
    }
      

  2.   

    搞不懂你说的错是什么
        但是我发觉你定义int j = 0;时是不是该放在gg:语句块下
    感觉你添加 gg  ll的标记冒似没有什么意义
        感觉打印的是我预期的答案
      

  3.   

    break 标签只能退出循环且开始执行循环体之后的语句,这是他的作用域
      

  4.   

    改成: gg: for (int j = 0; j < 10; j++) {
    就可以解决LZ的问题了
      

  5.   

    gg:
                   int j=0;
    这两句上下换一下
      

  6.   

    错误的原因是标签只能放在循环前 ,例如for,或者while,其他地方放标签肯定会有问题吧
      

  7.   

    找错:           gg:
    int j=0;上记标签 gg: 位置错了理由:break 标签 用法中的标签定义的位置是有限定的,必须在执行循环体之后的语句。一楼提供的改法为正解。