2
配列インデックス|値|累計
-------------------------------
   0 | 6 | 6
   1 | 1 | 7
   2 | 6 | 13
   3 | 2 | 15
I:配列インデックス
V:値
R:累計

特定の実行中の合計に適切なインデックスを選択する必要があります。たとえば、12 は特定の実行中の合計であるため、適切なインデックスは 2 です。コード ブロックを以下に配置します。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

メソッドの唯一のエラーは、包括的にx実行して、合計が 12 未満の場合にarray.lengthクラッシュすることです。ArrayIndexOutofBoundsException

コードを次のように変更します

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

クラッシュを避けるために。

もう 1 つの「スタイルのポイント」は、書くのではなく、v==falseより慣習的に書くこと!vです。最後に、現在のothermethods(x)合計が条件を満たす最初のインデックスを見つけた後に呼び出しを停止することが目的であるためbreak、ブール変数の代わりに a を使用してループを書き換えることができます。

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
for(int x=0;x<array.length;x++)

長さは から0までn - 1なので<=、ループ内の を に変更します<

于 2013-08-26T13:47:14.843 に答える
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 に答える