【问题标题】:changing milliliters to liters with if statement使用 if 语句将毫升更改为升
【发布时间】:2016-06-25 06:57:43
【问题描述】:

嗨,我的作业问题是 带有标头的方法 public double getGuppyVolumeRequirement() 它返回所有生活所需的总升数 池中的孔雀鱼。请注意,Guppy 类有一个有用的方法 with 返回每个 Guppy 所需的毫升总数。你 需要将其转换为升(注意 1,000 mL = 1 L)。

在我的孔雀鱼课上,我编写了毫升的代码:

public double getVolumeNeeded() {
        if (getAgeInWeeks() < YOUNG_FISH) {
            return MINIMUM_WATER_VOLUME_ML;
        } else if (getAgeInWeeks() <= MATURE_FISH) {
            return MINIMUM_WATER_VOLUME_ML * getAgeInWeeks() / YOUNG_FISH;
        } else if (getAgeInWeeks() <= MAXIMUM_AGE_IN_WEEKS) {
            return MINIMUM_WATER_VOLUME_ML * 1.5;
        } else {
            return 0;
}

现在我对如何将其变为升感到困惑。 这是我在游泳池里寻找孔雀鱼的回报

public int getPopulation() {
     return guppiesInPool.size();
}

【问题讨论】:

  • 谢谢你,但我有点困惑,我该如何将它输入到我的代码中。
  • 看来孔雀鱼问题现在很流行 - another guppy。也许我们应该添加一个孔雀鱼标签?
  • @TDG 显然我们需要一个guppy 标签,也许还需要一个完整的元站点。

标签: java


【解决方案1】:

由于您有一个方法可以返回 Guppy 类所需的毫升数,而 1L = 1000ml 您可能想要返回

return liters = /* method which returns the total number of milliLitres required per Guppy */ / 1000;

如果此getVolumeNeeded() 方法返回您可能想要的毫升数:

public double getVolumeNeeded() {
    if (getAgeInWeeks() < YOUNG_FISH) {
        return (MINIMUM_WATER_VOLUME_ML) / 1000;
    } else if (getAgeInWeeks() <= MATURE_FISH) {
        return (MINIMUM_WATER_VOLUME_ML * getAgeInWeeks() / YOUNG_FISH) / 1000;
    } else if (getAgeInWeeks() <= MAXIMUM_AGE_IN_WEEKS) {
        return (MINIMUM_WATER_VOLUME_ML * 1.5) / 1000;
    } else {
        return 0;
}

你需要做的就是划分每个return / 1000

【讨论】:

  • 这个特定代码的方法是什么?抱歉,我是 java 新手,我只是对此感到困惑。
  • 你说你在你的 Guppy 类中有返回毫升的方法。
  • 是的,如果语句很长,我必须将其复制并粘贴到您说的灰色区域中
  • 谢谢 daniele,当我这样做时,getAgeInWeeks 给了我一条错误消息,找不到符号 - 方法 getAgeInWeeks()
  • getAgeInWeeks() 在 guppy 类中,if 语句也在。我在泳池班工作。升转换应该在池类中
【解决方案2】:

由于您已经获得了每条孔雀鱼所需的毫升数,因此只需将所需的体积(以升为单位)返回为 return MINIMUM_WATER_VOLUME_ML/1000

【讨论】:

    【解决方案3】:

    因为 1L = 1000mL,您可以使用以下公式将升转换为毫升,反之亦然:

    litres = milliLitres / 1000;
    
    
    milliLitres = litres * 1000;
    

    在您的代码中,您可以替换如下指令:

      return MINIMUM_WATER_VOLUME_ML;    // Returns millilitres
    

    使用如下指令:

      return MINIMUM_WATER_VOLUME_ML / 1000;   // Returns litres
    

    或者对于最复杂的公式:

     // Returns millilitres
     return MINIMUM_WATER_VOLUME_ML * getAgeInWeeks() / YOUNG_FISH;  
    

    改成

     // Returns litres
     return (MINIMUM_WATER_VOLUME_ML * getAgeInWeeks() / YOUNG_FISH) / 1000;   
    

    【讨论】:

    • 哦,好吧,但是如果 (getAgeInWeeks()
    • 对不起,我真的很困惑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2022-08-23
    相关资源
    最近更新 更多