有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在一个变量中每输入1000个单位,就从另一个变量中减去1?

我正在写一个程序,输入度和高度,然后返回水的状态。所以-55及以下是固体

沸水受海拔高度的影响,因此每1000英尺的海拔高度沸点降低1度

我不知道如何用代码来表达。下面是我到目前为止的代码。我知道可能有更简单的方法来写这个,但我坚持使用switch和/或if语句

public class Water 
{

   private final double temperature;
   private final String degrees;
   private final int altitude;
   private final String units;

   public Water(double temp, String deg, int alt, String unitType)
   {
       temperature = temp;
       degrees = deg;
       altitude = alt;
       units = unitType;
   }

   public String getState()
   {

    switch (degrees) 
    {
           case "F":
               if (temperature > -55 && temperature < 212)
               {
                   System.out.println("The water is liquid.");
               }
               else if (temperature <= -55)
               {
                   System.out.println("The water is solid.");
               }
               else
               {
                   System.out.println("The water is gaseous.");
               }     break;
           case "C":
               if (temperature > -48 && temperature < 99.98)
               {
                   System.out.println("The water is liquid");
               }
               else if (temperature <= -48)
               {
                   System.out.println("The water is solid.");
               }
               else
               {
                   System.out.println("The water is gaseous.");
               }   break;
           default:
               System.out.println("Error: Degrees must be in either C (celcius) or F (farenheit).");
               break;
    }       


       return temperature + degrees;
   }


}

共 (1) 个答案

  1. # 1 楼答案

    我认为最简单、最干净的方法是使用辅助方法calculateBoilingPoint,该方法可以测量海拔和温度并返回适当的沸点

    根据您发布的代码,您甚至可以只进行一次计算,然后将该值存储在类中。那么,你的支票不是

    else if (temperature <= -55)
    

    他们将改为

    else if (temperature <= boilingPoint)
    

    或者类似的东西