你会如何在这个程序中添加另一种方法?转换温度

时间:2012-03-19 11:01:16

标签: java methods

我是java的新手,我读了几章。只是无法弄清楚如何在此程序中使用另一种方法将temps从F转换为C,反之亦然 这是我现在的代码:

import java.io.*;
import javax.swing.JOptionPane;

public class Converter {
    public static void main(String[] args) throws Exception{


        String unit = JOptionPane.showInputDialog("Enter unit F or C: ");

        //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String temp1 = JOptionPane.showInputDialog("Enter the Temperature: ");


        double temp = Double.valueOf(temp1).doubleValue();


         if((unit.equals("F"))||(unit.equals("f"))){
        double c= (temp - 32) / 1.8;
        JOptionPane.showMessageDialog(null,c+" Celsius");
        }

         else if((unit.equals("C"))||(unit.equals("c"))){
        double f=((9.0 / 5.0) * temp) + 32.0;
        JOptionPane.showMessageDialog(null,f+" Fahrenheit");

}
}
}

3 个答案:

答案 0 :(得分:1)

您可以创建静态方法以从另一个转换为另一个,例如

public static double fahrenheitToCelsius(double temp) {
 return (temp - 32) / 1.8;  
}

附注:您可以将if子句简化为if(unit.equalsIgnoreCase("F"))或更好if("F".equalsIgnoreCase(unit)),因为这也会处理unit = null

答案 1 :(得分:1)

你可以做的一件事是拆分转换温度的逻辑,即:

public static double toDegreesCelsuis(double tempF){
    double c= (tempF - 32) / 1.8;
    return c;
}  
public static double toFahrenheit(double tempC){
    double f=((9.0 / 5.0) * tempC) + 32.0;
    return f;
}

然后可以在主方法中调用它们,如:

double c = Converter.toDegreesCelsuis(40.0);

答案 2 :(得分:1)

在这里,

public class Converter {
public static void main(String[] args) throws Exception{


    String unit = JOptionPane.showInputDialog("Enter unit F or C: ");

    //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String temp1 = JOptionPane.showInputDialog("Enter the Temperature: ");


    double temp = Double.valueOf(temp1).doubleValue();
    double f = getTemprature(temp, unit);

    JOptionPane.showMessageDialog(null,f+" Fahrenheit");

}

    double getTemprature(double temp, String unit){
        if((unit.equals("F"))||(unit.equals("f"))){
        double c= (temp - 32) / 1.8;
        JOptionPane.showMessageDialog(null,c+" Celsius");
        }

         else if((unit.equals("C"))||(unit.equals("c"))){
        double f=((9.0 / 5.0) * temp) + 32.0;
   }

} }