2012-03-19 14 views
0

我是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"); 

} 
} 
} 
+0

如何添加另一種方法在我的代碼 – 2012-03-19 11:04:43

+2

聽起來像功課,如果是這樣,標記爲功課? – Nurlan 2012-03-19 11:05:27

回答

1

您可以創建靜態方法從上轉換爲另一種,例如

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

一個側面說明:您可以簡化您如果子句if(unit.equalsIgnoreCase("F"))或更好if("F".equalsIgnoreCase(unit)),因爲這將處理unit = null爲好。

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

}}