-2

この関数では、if ステートメントが true になると、値が返され、関数から「追い出され」ます。arrayList の残りの要素を取得しようとしているので、どの要素にアクセスしないかがわかります。私の質問は、配列から残りの要素を取得するにはどうすればよいですか?

For(Node a:state.children)
{
    state.value = Math.max(state.value,min_value(a, alpha, beta));
    alpha = Math.max(alpha,state.value);
    if(beta <=alpha)
    {
        System.out.println("The elements that are going to be skipped are: " + a.label);
        return state.value;
    }
}

returnステートメントのために使用されない配列の最後の要素のコピーを作成するにはどうすればよいですか

4

2 に答える 2

0

関数から戻りたくない場合は、if 内に return ステートメントを入れないでください。屋外で使用する必要がある場合は、コレクションに保管して使用してください

于 2013-04-05T05:07:49.367 に答える
0

スキップされていない値を保持する別の ArrayList を用意します。これを行うには、else ブロックを既存の if ブロックに追加します。else ブロックで、要素を一時 ArrayList に追加します。temp ArrayList を反復処理して、スキップされていない値を取得します。

ArrayList<Node> tempList = new ArrayList<Node>();
For(Node a:state.children)
{
    state.value = Math.max(state.value,min_value(a, alpha, beta));
    alpha = Math.max(alpha,state.value);
    if(beta <=alpha)
    {
        System.out.println("The elements that are going to be skipped are: " + a.label);
    } else {
        tempList.add(a);
    }

}
于 2013-04-05T05:13:54.213 に答える