Java 调用方法(温度转换)的主循环存在困难
我正在尝试编写一个方法,它接受华氏温度并返回等效的摄氏温度。为此,我的任务是在main中编写一个循环,调用一个方法并打印华氏值的转换:0、5、10、15、…、100 以下是我所拥有的:Java 调用方法(温度转换)的主循环存在困难,java,loops,methods,Java,Loops,Methods,我正在尝试编写一个方法,它接受华氏温度并返回等效的摄氏温度。为此,我的任务是在main中编写一个循环,调用一个方法并打印华氏值的转换:0、5、10、15、…、100 以下是我所拥有的: import java.util.Scanner; public class TemperatureConverter { public static void main(String[] args) { int F; F = 0; double tem
import java.util.Scanner;
public class TemperatureConverter {
public static void main(String[] args) {
int F;
F = 0;
double tempCelsius;
while (F <= 100) {
convert(F);
System.out.println(F + " degrees F corresponds to " + tempCelsius + " degrees C");
F = F + 5;
}
}
public static double convert(int F) {
tempCelsius = ((5.0 / 9.0) * (F - 32));
return tempCelsius;
}
}
我得到的错误是
/java:32:错误:找不到符号
温度摄氏度=5.0/9.0*F-32;
^
我很感激您的指导。您的功能应该是
public static double convert(int F) {
return ((5.0 / 9.0) * ( F - 32 ));
}
您可以通过以下方式进行呼叫:
tempCelsius = convert(F);
以前,您试图从convert访问局部变量TEMPCELICES,但该变量仅在main中可用。您在main方法中声明了变量TEMPCELICES,因此convert方法不知道该变量。 有两种解决方案: 在main方法之外声明tempcellius。 或 不要在convert mathod中使用tempCelsius变量,而是直接返回计算值。 返回将华氏温度转换为摄氏温度的逻辑
《宣言》规定了2摄氏度;在主方法中,转换方法中没有有效的作用域。因此,您也必须在convert方法中再次声明它。一旦这样做,您必须将convert方法返回的值存储到main方法中的tempCelsius变量中才能打印它。简单地说,您在main方法中声明的tempCelsius与convert方法中的tempCelsius无关,因为它们都有不同的作用域。在while循环中更新下面的语句并查看它运行 这: 与:
你知道变量作用域吗?如果在方法内声明局部变量,则无法从其他方法访问它。您应该删除convert中的临时赋值,而使用TEMPCELSICS=convertF;中的返回值;。作为旁注,Java有一个方便的+=操作符;F=F+5可以写成F+=5;。
convert(F);
tempCelsius = convert(F);