【问题标题】:Boolean use for decision making用于决策的布尔值
【发布时间】:2017-03-31 16:17:11
【问题描述】:

基本上我想做一个用来做决定的方法,当HitshipPercentage小于50且shots不等于0时,它会使用方法public spacefire()。我不确定如何以正确的方式使用布尔值。

public Space fire()
{
 System.out.println("Hi");
}

     public boolean hitRateAnalysis()
 {

     if (HitShipPercentage < 50 && Shots!=0) 

      return true;

     else{
     return false;
     }
 }

【问题讨论】:

  • fire(..) 应该返回一个Space...
  • if (hitRateAnalysis()) { fire(); } 但是,方法名称使返回值的含义不清楚。 true的分析结果是什么意思?选择一个更好的方法名称,以正确反映结果的真/假性质,以及这两个值的含义,例如shouldFire().

标签: java boolean boolean-logic


【解决方案1】:

你的 fire() 错误并且会导致编译错误,你必须返回一个 Space 的实例。要么将方法的返回类型更改为 void,要么返回 Space 类的实例。

这将正确调用fire方法:

public boolean hitRateAnalysis() {
   if (HitShipPercentage < 50 && Shots != 0){
      fire();
      return true;
    }
   return false;
 }

【讨论】:

    【解决方案2】:

    您的代码中有一些错误,fire() 方法的类型为Space,这意味着它应该返回Space。我不认为这就是你想要的,我的猜测是 fire 不应该返回任何东西,在这种情况下它应该是 void

    public void fire() {
        System.out.println("Hi");
    }
    
    public boolean hitRateAnalysis() {
        if (HitShipPercentage < 50 && Shots!=0)  {
            fire();
            return true;
        }
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多