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

时间:2016-12-09 19:50:26

标签: 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实现类似的循环?

2 个答案:

答案 0 :(得分:1)

您不需要检查循环中的最后一项,因为循环即将完成。循环结束后,无条件返回:

req.body.users

答案 1 :(得分:0)

如果尺寸为1,则需要检查的是

if(possibleMoves.size() == 1) { //Checking the size of the stack currently
    return best;
} else {
    continue;
}