java - 传入对象实例的 boolean 方法,为 return 语句提供错误

标签 java object methods boolean return

我正在制作一款二十一点游戏,并且正在制作一种方法来查看玩家是否有 A 牌。

public static boolean hasAce(Player player){
        for (int j=0; j<player.getNumOfCards();j++){
            int cardValue = player.getCard(j).getValue();
            if (cardValue == 1){
                return true;
            } else {
                return false;
            }
        }
    }

好吧,它给了我一个错误,它必须返回一个 boolean 类型,但我是。看起来它想要 return 语句在底部,但如果我需要 if else 语句,这是不可能的。

PS。该代码可能难以阅读,因为这些是我自己的方法,但基本上 if (cardValue == 1)然后有一张 A,for 循环只是循环播放玩家拥有的牌。

最佳答案

编译器无法确定 for 循环一定会运行,因此它会提示。还有一个额外的问题。您的 for 循环仅迭代一次,因为它总是在仅检查第一张卡后返回。您可以将其更改为:

public static boolean hasAce(Player player) {
    boolean returnValue = false;
    for (int j = 0; j < player.getNumOfCards(); j++) {
        int cardValue = player.getCard(j).getValue();
        if (cardValue == 1) {
            returnValue = true;
            break;
        } 
    }
    return returnValue;
}

一旦找到 A,这就会被打破。否则,它将检查手中的每张牌,如果没有找到 A,则 returnValue 仍将为 false。

关于java - 传入对象实例的 boolean 方法,为 return 语句提供错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715809/

相关文章:

java - mediaplayer.start() 仅在 Motorola Droid 设备上导致应用程序崩溃

java - 如何通过servlet提交WordCount.jar到hadoop

c++ - move 对象 (OpenGL)

C++ & 从函数接收对象

java - 获取 ArrayList 总和的方法

java - DDD 和 CRUD 类型的应用程序

javascript - 将二维数组合并为对象数组

java - 工作日计算器逻辑错误 - Java

methods - 有没有一种方法可以使用后缀表示法来调用 Rust 中的函数而不需要定义新的特征?

java - Android - 后台任务的最佳实践是什么?