2017-10-15 79 views
-5

當我編譯代碼時它告訴我我有2個錯誤,這兩個變量可能都沒有被初始化錯誤。變量攝氏和華氏是問題。我相信我已經用他們各自的方法初始化了它們。變量可能未被初始化,即使它已經在方法中

import java.io.*; 

class Converter 
{ 

double celsius,fahrenheit,temperature,inFahrenheit,inCelsius; 

double Celsius (double temperature) 
    { 
    celsius = (5.0/9.0) * (temperature - 32); 
    return celsius; 
    } 
double Fahrenheit (double temperature) 
    { 
    fahrenheit = (9.0/5.0) * temperature + 32; 
    return fahrenheit; 
    } 
} 



public class ConverterTester 
{ 
public static void main(String[] args)throws IOException 
{ 
    double temperature,fahrenheit,celsius; 

    InputStreamReader inStream = new InputStreamReader (System.in); 
    BufferedReader stdin = new BufferedReader (inStream); 

    String intemperature,inCelciusOrFahrenheit; 

    System.out.println("What is the temperature"); 
    intemperature = stdin.readLine(); 
    temperature = Double.parseDouble(intemperature); 

    System.out.println("What is the temperature you wish to convert to, Celsius or Fahrenheit"); 
    inCelciusOrFahrenheit = stdin.readLine(); 


if (inCelciusOrFahrenheit.equals("Celsius")) 
    { 
    Converter Conversion1 = new Converter(); 
    Conversion1.Celsius(celsius); 
    System.out.println("Your new temperature is " + celsius); 
    } 

else if(inCelciusOrFahrenheit.equals("Fahrenheit")) 
    { 
    Converter Conversion2 = new Converter(); 
    Conversion2.Fahrenheit(fahrenheit); 
    System.out.println("Your new temperature is " + fahrenheit); 
    } 
else 
    { 
    System.out.println("Please enter a correct temperature"); 
    System.exit(0); 
    } 
} 
}  

當我打電話的方法攝氏和華氏方法發生錯誤,我不知道如果我允許我的時候調用的方法使用的變量。然而,我仍然無法找到任何說不允許的事情。

+2

'celcius'和'fahrenheit'都不會被賦值。 –

+2

,你永遠不會使用'溫度' –

+0

你在哪裏初始化'celcius'或'華氏'? –

回答

0

你唯一的問題是你沒有初始化溫度,攝氏度或華氏溫度。
當在這裏讓您的變量:
double celsius,fahrenheit,temperature,inFahrenheit,inCelsius;,你需要的溫度相等的東西,說20
我會建議取出整數攝氏度和華氏度,或將它們設置等於攝氏雙打和華氏,那你設置等於溫度...數學。

+0

我明白你的觀點,但溫度需要等於用戶輸入(在這種情況下,緩衝讀取器的標準輸入)我只是把這個聲明放在錯誤的地方或完全濫用它?攝氏溫度和華氏溫度應該是方法,而不是變量。 – Dks1

+0

@ Dks1當然,我只是指出你需要做什麼 – 2017-10-15 22:16:39

+0

@ ProgrammingNub好吧謝謝你,我不明白這一點。所以我的聲明'溫度= Double.ParseDouble(intemperature);'需要在其他地方?或將攝氏和華氏設置爲溫度? – Dks1