【问题标题】:How to call results of a Boolean method in a main method 'static void'如何在主方法“静态无效”中调用布尔方法的结果
【发布时间】:2020-11-23 00:50:30
【问题描述】:

我正在尝试创建一个名为 hasBiggerTankboolean 方法,如果 size 大于或等于 4 它有足够的燃料,否则没有足够的燃料.

我试图在 main 方法中调用布尔方法的结果,但我得到的结果是 car1 和 car2 在应该输出时打印出单词 true

预期输出:

“goodfuel consumptions”加上car2应该是假的。

我是 Java 新手,需要一些帮助。

// method
public boolean hasBiggerTank(int size) {
    if (size <= 4) {
        return true;
    } else {
        return false;
    }
}

public class Start {
    public static void main(String[] args) {
        boolean hasBiggerTank = true;
        int size = 0;
        if (size <= 4) {
            System.out.println("Good fuel consumptions");
        } else {
            System.out.println("Not enough fuel");
        }

        Car car1 = new Car();
        car1.hasBiggerTank(6);
        System.out.println("Car 1 efficiency: " + car1.hasBiggerTank(size));

        Car car2 = new Car();
        car2.hasBiggerTank(2);
        System.out.println("Car 2 efficiency: " + car2.hasBiggerTank(size));
    }
}

【问题讨论】:

  • if(size &lt;= 4),在该行之前没有为size分配值,因此出现错误
  • @IsmaelPadilla - 变量size是函数中的参数,正在检查中...
  • @AyushGarg - 上述 cmets 指的是问题的早期版本,其中变量 size 未在 main 中初始化。查看问题历史记录。
  • @Mazzie - 如果您修改问题以用较新的代码/问题替换较早的代码/问题,就会出现这种混淆。 请不要这样做 ....以后。
  • 哦,好的@StephenC,感谢您解决这个问题。

标签: java eclipse methods


【解决方案1】:
public static boolean hasBiggerTank(int size) {            \\method
        if (size <= 4) {
            return false;
        }
        return true;
} 


public class Start {
    public static void main(String[] args) { 
        
        int size = java.util.Scanner.nextInt();
        boolean hasBiggerTank = hasBiggerTank(size);
        if(hasBiggerTank) {
            System.out.println("Good Big Fuel Tank");
        }
        else { 
           System.out.println("Not big enough fuel Tank"); 
        }
   }
}

这是从 main 方法调用布尔返回方法的方法。

【讨论】:

    【解决方案2】:

    好的,所以我认为您得到错误答案的真正原因是您的hasBiggerTank 方法的逻辑不正确。

    根据方法的名称以及您使用它的方式,我认为当且仅当汽车的油箱尺寸大于size 参数时,它应该返回true

    但是如果你看一下代码,那不是你实现的。相反,您的方法忽略汽车的油箱大小,只是测试用户是否(实际上)输入了小于或等于 4 的数字。

    解决方案:想想hasBiggerTank应该真的在做什么......并实施它。


    但这整件事也有一些奇怪的地方。在现实世界中,汽车的油箱尺寸和燃油效率不是一回事。但也许这只是家庭作业的一组不切实际要求的产物......

    【讨论】:

      【解决方案3】:

      正如你所说的:

      如果尺寸大于或等于 4,它有足够的燃料,否则没有足够的燃料。

      如果大小大于或等于 4,则方法 hasBiggerTank 必须返回 true,问题在于您在 hasBiggerTank 方法中的条件,您需要将其更改为:

      public static boolean hasBiggerTank(int size) {
          if (size >= 4) {
              return true;
          } else {
              return false;
          }
      }
      

      下一个问题出在您的 main() 方法中,您再次将条件设置为错误格式,应将其更改为:

      int size = 0;
      if (size >= 4) {
          System.out.println("Good fuel consumptions");
      } else {
          System.out.println("Not enough fuel");
      }
      

      在这里,根据您的问题,我们正在检查大小是否大于或等于 4,如果其为 true,则将打印 Good fuel consumption

      【讨论】:

        猜你喜欢
        • 2017-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        • 2015-12-15
        相关资源
        最近更新 更多