【问题标题】:How can I find capacity of stadium using Java? [closed]如何使用 Java 查找体育场的容量? [关闭]
【发布时间】:2021-06-17 11:51:21
【问题描述】:

这是问题

编写一个方法 atCapacity(int people, int capacity) 返回一个布尔值,确定体育场是否处于最大容量。如果至少 80% 的座位售罄,则体育场已满员。

这是我尝试过的代码

public class Scratchpad
{
    atCapacity(int people, int capacity)
    {
        boolean atCapacity = false;
        capacity = people * (80/100);
    
        if(people > capacity)
        {
            return false;
        }
        else if(people <= capacity)
        {
        return true;
        }
    }
}

代码检查器说

"Grader.java:第 4 行:无效的方法声明;返回类型 必填”

我不明白如何修复代码。我不是在寻求答案,我只需要朝着正确的方向轻推。谢谢

【问题讨论】:

  • 你缺少返回类型atCapacity(int people, int capacity) => boolean atCapacity(int people, int capacity)
  • 您的代码与错误信息不符。
  • 理解return people &gt;= capacity * 0.8而不是if块不是更容易吗?
  • 您提供了 Scratchpad 类的代码,但您的错误是针对 Grader.java。
  • 不是我,感谢那个向你展示你的语法错误的人。

标签: java computer-science


【解决方案1】:

这应该是一个方法声明:

    atCapacity(int people, int capacity)

但是方法声明的语法需要返回类型,如

    SomeReturnType atCapacity(int people, int capacity)

如果我们查看您返回的方法的主体truefalse,那么正确的类型应该是truefalse 的类型,即&lt;nudge&gt;


我也可以看到一些其他错误 (&lt;nudges&gt;):

  • 编译器会告诉你在方法的末尾需要一个return。 (不会推断people &gt; capacitypeople &lt;= capacity 是互斥的。)

    解决这个难题的方法不止一种。

  • 在运行时,80/100 会让你伤心;见Int division: Why is the result of 1/3 == 0?

  • 最重要的是,您有一个名为 atCapacity 的变量,似乎不需要它。

【讨论】:

    【解决方案2】:

    你可以写

    public boolean atCapacity() { ... }
    

    【讨论】:

    • 我喜欢堆栈这样的功能
    • 对不起,我刚开始使用stack over flow。我会小心添加评论
    • 我从一个错误的评论开始,然后我编辑了它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多