2017-10-15 4 views
-5

Lorsque je compile le code, il me dit que j'ai 2 erreurs, les deux variables peuvent ne pas avoir été initialisées. Les variables celsius et fahrenheit sont les problèmes. Je crois que je les ai déjà initialisés dans leurs méthodes respectives.La variable ne peut pas être initialisée même si elle a été dans la méthode

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

Les erreurs se produisent lorsque j'appelle la méthode Celsius et Fahrenheit méthode, je ne sais pas si je suis autorisé à utiliser les variables quand je l'appelle les méthodes. Cependant, je n'ai pas réussi à trouver quoi que ce soit en disant que ce n'est pas autorisé.

+2

'celcius' et' fahrenheit' ne reçoivent jamais de valeur. –

+2

et vous n'utilisez jamais 'temperature' –

+0

Où initialisez-vous' celcius' ou 'fahrenheit'? –

Répondre

0

Votre seul problème est que vous n'avez pas initialisé la température, le Celsius ou le Farenheit.
Lors de vos variables ici:
double celsius,fahrenheit,temperature,inFahrenheit,inCelsius;, vous devez faire quelque chose à température égale, disons 20
je recommande de prendre le ints et celsius fahrenheit, ou les égal au double Celsius et Farenheit, que vous définissez égal à la température ... maths.

+0

Je vois votre point, mais la température doit être égale à la l'entrée de l'utilisateur (dans ce cas, le lecteur tamponné stdin) ai-je simplement placé cette déclaration au mauvais endroit ou totalement l'abuser? Et les Celsius et Fahrenheit sont censés être des méthodes, pas des variables. – Dks1

+0

@ Dks1 bien sûr, je soulignais simplement ce que vous devez faire –

+0

@ ProgrammingNub ok merci, je n'ai pas compris cela. Donc, ma déclaration 'temperature = Double.ParseDouble (intemperature);' doit être ailleurs? ou régler Celsius et Fahrenheit à la température? – Dks1