Java:检查循环中的当前项目是否是正在循环的堆栈中的最后一个项目

标签 java

我有以下内容:

public Move nextBestMove(Stack<Move> possibleMoves, Stack<Square> enemyPieces){

    int highestWeight;
    Move best = null;

    for(Move move: possibleMoves){
        Square landing = move.getLanding();
        int landingX = move.getLandingXC();
        int landingY = move.getLandingYC();

        int score = scoring(enemyPiece.pieceName()){
            if(score > highestWeight){
                highestWeight = score;
                best = move;
                if(!possibleMoves.hasNext()){ //Check if i am at end of stack
                    return best;
                else{
                    continue;
                }
            }
        }
    }
}

我正在尝试通过根据权重不断更新最佳举措来评估简单国际象棋策略实现中的最佳举措。但是我不确定如何检查我是否处于堆栈循环中的最后一项。

我知道我可以使用 .hasNext() 作为列表,但是如何通过 Stack 进行循环来完成类似的任务?

最佳答案

您不需要检查循环中的最后一项,因为循环无论如何都会结束。循环结束后,无条件返回:

for(Move move: possibleMoves){
    Square landing = move.getLanding();
    int landingX = move.getLandingXC();
    int landingY = move.getLandingYC();
    int score = scoring(enemyPiece.pieceName());
    if(score > highestWeight){
        highestWeight = score;
        best = move;
    }
}
return best;

关于Java:检查循环中的当前项目是否是正在循环的堆栈中的最后一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41067828/

相关文章:

java - 客户端和服务器之间使用套接字进行通信

java - Flink 不向 Graphite 发送指标

java - 在 JPA 查询中使用 group by 和 having

java - 如何在带有 android 6.0.1 的 2013 nexus 7 上将 sockethandler 添加到 logcat?

java - 如何根据ListView中的String值设置TextColor?

java - 在 Scala 中将泛型类型转换为 AnyRef

java - Java线程同步问题

Java执行弹出新窗口后立即消失

java - 如何从一台机器针对另一台机器运行ant脚本?

java SQL异常分析