返回布尔语句的关键字

时间:2014-04-21 23:58:01

标签: java null boolean

我正在为高中编程课写一个令人难以置信的原始二十一点游戏,我正在玩写一个布尔值:

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工作,或者有什么我可以放在它仍然可用的地方,或者我只是在这里愚蠢。

请注意我并不需要这个布尔值,所以如果您认为没有解决方案,只需建议删除布尔值。

3 个答案:

答案 0 :(得分:2)

原语布尔值只能返回值truefalse。您需要返回boolean

的Object包装器类型
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

更好的解决方案是定义枚举。这有助于保留返回值的语义含义,这将使您的代码更易读,更易于维护。