我正在为高中编程课写一个令人难以置信的原始二十一点游戏,我正在玩写一个布尔值:
public boolean DealerTracker()
{
if(a==11 || a==12|| a==13)
{
a = 10;
}
dealerHandValue = a + dealerHandValue;
if(dealerHandValue>21)
{
DealerHand.setText("The House went bust!! Everybody wins!!");
return true;
}
else if(dealerHandValue<21)
{
return null;
}
else if(dealerHandValue==21)
{
return false;
}
}
我一直收到一条错误消息,指出返回null (我无法设法让花哨的blockquote工作)无效。但是,为了使这个布尔值工作,我真的需要三个return语句。所以我的问题是:有没有办法使null工作,或者有什么我可以放在它仍然可用的地方,或者我只是在这里愚蠢。
请注意我并不需要这个布尔值,所以如果您认为没有解决方案,只需建议删除布尔值。
答案 0 :(得分:2)
原语布尔值只能返回值true
或false
。您需要返回boolean
public Boolean dealerTracker() {
...
答案 1 :(得分:0)
如果您真的不需要布尔值,请将返回类型设为void并删除所有返回语句。如果确实需要boolean AND null,请将返回类型更改为Boolean,这将返回包含在实际可以为null的对象中的布尔值。调用此方法的方法然后可以接收true,false或null,因为null实际上也代表了某些东西(虽然我不确定在这种情况下它代表什么有意义的东西)。
答案 2 :(得分:0)
boolean
原语不能是null
。您基本上可以看到两个选项:
让您的函数返回Boolean
(注意大写&#39; B&#39;)。 Boolean
是一个对象,而不是一个原语,因此可以是null
。
更好的解决方案是定义枚举。这有助于保留返回值的语义含义,这将使您的代码更易读,更易于维护。