-2

在这个函数中,一旦我的 if 语句为真,它就会返回一个值,并将我“踢”出函数。我正在尝试获取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 将保存未跳过的值。为此,请在现有 if 块中添加一个 else 块。在 else 块中,将元素添加到 temp 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 回答