簡體   English   中英

在對象實例中傳遞的布爾方法為return語句提供了錯誤

[英]Boolean method that passes in instance of object giving error for return statement

我正在制作二十一點游戲,並且正在研究一種方法來查看玩家是否擁有一張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;
            }
        }
    }

好的,這給了我一個錯誤,它必須返回一個布爾型,但是我是。 看起來它想在最底部使用return語句,但是如果我需要if語句,那是不可能的。

PS。 代碼可能難以讀取,因為這些是我自己的方法,但是基本上, if (cardValue == 1)則有一個ace,而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;
}

現在,一旦找到一張王牌,這便會中斷。 否則,它將檢查手中的每張卡,並且如果未找到任何王牌,則returnValue仍為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM