boolean a[]={false,true,false,true,false,true,false,true,false,true,false,true};
 int h; int l=0;int k=9;
                               for(int i=0;i<k;i++){
for( h=l;h<ary.length;h++){
if(a[h]==true)break;
}
l=h;
System.out.println(l);
}
为甚么l的输出是九个0?内循环不是已经把break 出来的h的值赋值给l了吗?所以第二次循环应该是从h=2开始的啊?要让第二次循环从2开始,应该怎样修改?先谢谢各位了

解决方案 »

  1.   

    ary哪里来的?
    另外应该先把你要实现的目的说清楚,否则一句为什么输入9个0,完全不知所云。
      

  2.   

    ary.length是什么?
    应该是a.length
    这里改后应该是输出9个1,不知道是不是你想要的结果,注意a[1]==true,所以h永远到不了2
      

  3.   

    你想要什么结果。
    for( h=l;h<ary.length;h++){
    if(a[h]==true)break;
    }

    修改为
    for( h=l;h<ary.length;){
    h++
    if(a[h]==true)break;
    }