Как бы вы добавили другой метод в этой программе? Преобразование температуры - PullRequest
0 голосов
/ 19 марта 2012

Я новичок в Java, и я прочитал несколько глав. Просто не могу понять, как использовать другой метод в этой программе, который преобразует временные значения из 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 ]

1 голос
/ 19 марта 2012

Одна вещь, которую вы можете сделать, это разделить логику, которая преобразует температуру, то есть:

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;
}

Затем они могут быть вызваны в вашем основном методе как:

1 голос
/ 19 марта 2012

Вот оно,

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;
   }

}}

1 голос
/ 19 марта 2012

Вы можете создать статические методы для преобразования из одного в другое, например

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

и т. Д.

Примечание: вы можете упростить условие if до if(unit.equalsIgnoreCase("F")) или лучше if("F".equalsIgnoreCase(unit)), так как это также обработает unit = null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...