方法不起作用,没有编译错误

时间:2016-09-08 18:17:15

标签: java methods

我很抱歉这个问题,因为我知道这很简单,但我已经习惯了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 -Xms16M HelloWorld"

我使用编码地Java编译器和执行器,我想让它询问一个数字,然后在用户输入时将其转换为华氏度

3 个答案:

答案 0 :(得分:3)

您没有从changeToFahrenheit()方法调用main()方法,因此它什么都不做并退出

答案 1 :(得分:2)

您必须实际从主方法中调用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进行计算。

答案 2 :(得分:0)

  • 由于该方法是静态方法,您可以在不创建对象的情况下调用该方法。
  • reader.nextInt(); //返回整数..所以将它存储在整数中。
  • 除非您有其他方法可以重复使用此值,否则您不必返回值。