Java 方法不工作,没有编译器错误

Java 方法不工作,没有编译器错误,java,methods,Java,Methods,对于这个问题我很抱歉,因为我知道它非常简单,但我已经习惯了python和js,所以java对我来说非常陌生,我还没有找到任何东西告诉我为什么它不起作用 import java.util.Scanner; public class HelloWorld{ public static void main(String []args){ } public static double changeToFahrenheit(){ Scanner read

对于这个问题我很抱歉,因为我知道它非常简单,但我已经习惯了python和js,所以java对我来说非常陌生,我还没有找到任何东西告诉我为什么它不起作用

import java.util.Scanner;
public class HelloWorld{

     public static void main(String []args){

     }

    public static double changeToFahrenheit(){

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter a number between 0-20: ");
        double celsius = reader.nextInt();
        double fahrenheit = (9/5) * celsius +32;

        System.out.println(fahrenheit);
        return fahrenheit;
    }
}
当我运行这个程序时,我得到了“sh-4.3$java-Xmx128M-xms16mHelloWorld”


我使用的是codinggrounds Java编译器和执行器,我想让它请求一个数字,然后在用户输入时将其转换为华氏温度

您没有从
main()
方法调用
changeToFahrenheit()
方法,因此它不会执行任何操作并退出
  • 由于该方法是静态方法,您可以在不创建对象的情况下调用该方法
  • reader.nextInt();//这将返回整数。。所以将其存储在整数中
  • 除非有其他方法重用返回的值,否则不必返回该值

您必须从主方法实际调用
changeToFahrenheit
,因此您的代码是:

import java.util.Scanner;
public class HelloWorld{

     public static void main(String []args){
          changeToFahrenheit();
     }

    public static double changeToFahrenheit(){

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter a number between 0-20: ");
        double celsius = reader.nextInt();
        double fahrenheit = (9/5) * celsius +32;

        System.out.println(fahrenheit);
        return fahrenheit;
    }
}

要使用函数,必须调用函数(这类似于C#中的
Main
函数)。顺便说一下,您不能执行
9/5
,因为整数除法将产生一个整数,
1
。尝试
9.0/5.0
进行计算。

在许多其他事情中,
9/5
是整数除法,只会给你1。谢谢你让它运行起来,我做了一点C#但是我真的不知道Java main()的用途,所有在线的东西都自然地有它,但没有说为什么。你能告诉我我的摄氏度变量是否有问题吗。当我输入一个数字时,我得不到正确的华氏转换。例如,我输入了10,得到了42,但应该是50谢谢我修正了它@chryli需要把9.0改为9,或者在除法之前只乘以
摄氏度,这有点烦人。