ArrayIndex|Value|Running total ------------------------------- 0 | 6 | 6 1 | 1 | 7 2 | 6 | 13 3 | 2 | 15 I:array index V:value R:Running total
例如,我需要为给定的运行总计选择合适的索引 12是给定的运行总数,所以适当的索引是2,我将把我的代码块吼到它不工作我试过使用break;在if语句之后,任何人都可以帮我解决这个问题:)
int running_total = 0;
boolean v=false;
for(int x=0;x<=array.length;x++)
{
running_total+=array[x];
if(running_total>=12)
{
if(v==false)
{
v= true;
othermethods(x);
}
}
}
答案 0 :(得分:1)
您的方法中唯一的错误就是让x
运行到array.length
,当总数小于12时,导致ArrayIndexOutofBoundsException
崩溃。
将您的代码更改为
for(int x=0 ; x < array.length ; x++) {
...
}
避免崩溃。
另一个“风格点”是写v==false
而不是写!v
,而不是写othermethods(x)
。最后,由于意图是在找到运行总计满足条件的第一个索引后停止调用break
,因此可以使用for(int x=0 ; x < array.length ; x++) {
running_total+=array[x];
if(running_total >= 12) {
othermethods(x);
break;
}
}
而不是布尔变量重写循环:
{{1}}
答案 1 :(得分:0)
for(int x=0;x<array.length;x++)
长度从0
到n - 1
,因此请将循环中的<=
更改为<
答案 2 :(得分:0)
int running_total = 0;
int x = 0;
for(x=0; x<array.length, running_total < 12; x++){
running_total += array[i];
}
//required index is x+1