当我编译代码时,它告诉我我有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);
}
}
}
当我调用Celsius方法和Fahrenheit方法时会发生错误,我不确定在调用这些方法时是否允许使用变量。但是,我找不到任何不允许的内容。
最佳答案
唯一的问题是您没有初始化温度,摄氏或华氏度。
在此处进行变量设置时:
double celsius,fahrenheit,temperature,inFahrenheit,inCelsius;
,您需要使温度等于某个值,例如20。
我建议取出整数摄氏度和华氏度,或将它们设置为等于摄氏温度和华氏度的倍数,将温度设置为等于...数学。
关于java - 即使变量已经在方法中,也可能未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760142/