使用以下代码获取错误:
import java.util.Scanner;
public class FahrenheitToCelsius{
public static void main(String[]args){
convertFToC();
}
/*gets input representing fahrenheit and displays celsius equivalent*/
public static void convertFToC(){
Scanner scan = new Scanner(System.in);
System.out.println("Enter Fahrenheit temperature");
double fahrenheit = scan.nextInt();
System.out.println(fahrenheit + " degrees Fahrenheit is " +
fMethod(celsius) + " degrees Celsius");
}
/* calculates and returns the celsius equivalent */
public static double toCelsius(double fahr){
int BASE = 32;
double CONVERSION_FACTOR = 9.0/ 5.0;
double celsius = ((fahr-BASE)/(CONVERSION_FACTOR));
return celsius;
}
}
我得到以下内容:
Error: celsius cannot be resolved to a variable
我需要使用fMethod
来调用toCelsius
中的System.out.println
但是我一直收到此错误。
答案 0 :(得分:7)
您根本没有显示fMethod
,但看起来您只是想要:
System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit)
+ " degrees Celsius");
您无法在celsius
中使用main
,因为它是toCelsius
方法中的局部变量。相反,您需要调用该方法并使用返回值。
答案 1 :(得分:4)
System.out.println(fahrenheit + " degrees Fahrenheit is " + fMethod(celsius) + " degrees Celsius"); //Step 4
应该阅读
System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit) + " degrees Celsius"); //Step 4
答案 2 :(得分:4)
当我认为您的意思是fMethod
时,您拨打celsius
不存在并传递fahrenheit
的值。
变量celsius
是toCelsius()
的本地变量,因此无法在convertFToC()
内解析。
答案 3 :(得分:3)
您需要调用您的toCelsius(double fahr)
方法,如下所示:
System.out.println(fahrenheit + " degrees Fahrenheit is " + toCelsius(fahrenheit) + " degrees Celsius"); // Step 4
答案 4 :(得分:3)
convertFToC()
中的
您从用户那里获得fahrenheit
并致电fMethod(celsius)
您应该致电fMethod(
farenheit
)
更重要的是:
如果您阅读编译器错误消息,则不仅会出现错误,还会得到文件名和行号。如果您转到行号,您会看到一个celcius
变量。
这很容易。我知道要求更容易,但你永远不会学会阅读错误信息并以这种方式解决问题。
学习阅读并理解错误消息。他们是有原因的。
答案 5 :(得分:2)
在标有 step4 的行上,您有一个名为celsius
的未声明变量。也许应该是fahrenheit
?
答案 6 :(得分:2)
你在这里使用摄氏:
System.out.println(fahrenheit + " degrees Fahrenheit is " + fMethod(celsius) + " degrees Celsius");
但是,您确实只在toCelsius
声明了摄氏度,而且超出了范围。