Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用方法(温度转换)的主循环存在困难_Java_Loops_Methods - Fatal编程技术网

Java 调用方法(温度转换)的主循环存在困难

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

我正在尝试编写一个方法,它接受华氏温度并返回等效的摄氏温度。为此,我的任务是在main中编写一个循环,调用一个方法并打印华氏值的转换:0、5、10、15、…、100

以下是我所拥有的:

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