我正在制作一款二十一点游戏,并且正在制作一种方法来查看玩家是否有 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/