2
ArrayIndex|Value|运行总计
-------------------------------------------
   0 | 6 | 6
   1 | 1 | 7
   2 | 6 | 13
   3 | 2 | 15
I:数组索引
V:值
R:运行总数

我需要为给定的运行总数选择适当的索引,例如 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);
                }
            }
        }
4

3 回答 3

1

您的方法中唯一的错误是您让xrun包含在内,当总数小于 12 时array.length导致崩溃。ArrayIndexOutofBoundsException

将您的代码更改为

for(int x=0 ; x < array.length ; x++) {
    ...
}

以避免崩溃。

另一个“风格要点”是写而不是写v==false更传统!v。最后,由于目的是othermethods(x)在找到运行总计满足条件的第一个索引后停止调用,因此您可以使用 abreak而不是布尔变量重写循环:

for(int x=0 ; x < array.length ; x++) {
    running_total+=array[x];
    if(running_total >= 12) {
        othermethods(x);
        break;
    }
}
于 2013-08-26T13:46:11.493 回答
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
于 2013-08-26T14:19:24.993 回答
0
for(int x=0;x<array.length;x++)

长度从0n - 1,因此<=将循环中的 更改为<

于 2013-08-26T13:47:14.843 回答