如何在方法中调用方法

时间:2014-02-24 16:32:55

标签: java methods

虽然这可能很简单,但我遇到了麻烦。

我必须创建一个华氏温度摄氏度,摄氏温度到华氏温度转换器。这之后的任务是:

在main方法中声明一个double类型的变量 并将其初始化为一个值。 3.在main中添加一行调用fToC方法的行,并将步骤2中声明的变量作为参数传递。

我知道这也是声明变量并将其设置为数字,我将不得不这样做:

double var = 0;

但我不知道如何调用此方法。

我尝试调用该方法,但它似乎是不正确的格式,我找不到如何正确地做到这一点(谷歌搜索了很多:()

import java.util.Scanner;

public class ExerciseOne {
    public static void main( String[] args ) {

        int choice;
        double variable = 0;

        public static float ftoC(double var) {    //This line is giving me trouble

            System.out.println( "What would you like to do? \n \n 1 - Fahnrenheit to Celsius \n 2 - Celsius to Fahrenheit \n 3 - Quit" );
            Scanner dylan = new Scanner(System.in);
            choice = dylan.nextInt();

            if (choice == 1)
            {
                System.out.println( "What number do you want to convert to Celsius?" );
                float input = dylan.nextFloat();
                float output = ftoC(input);
                System.out.println( input + " degrees Fahrenheit is " +
                    ftoC(input) + " degrees Celsius." );
            }

            if (choice == 2)
            {
                System.out.println( "What number do you want to convert to Fahrenheit?" );
                float input = dylan.nextFloat();
                float output = ctoF(input);
                System.out.println( input + " degrees Celsius is " +
                    ctoF(input) + " degrees Fahrenheit." );
            }

            if (choice == 3)
            {
                System.out.println( "Exiting application.");
            }
        }
    }

    public static float ftoC(float f)
    {
        float celsius = (f-32)*(5f/9f);
        return celsius;
    }

    public static float ctoF(float c)
    {
        float fahrenheit = c*9/5 + 32;
        return fahrenheit;
    }
}

3 个答案:

答案 0 :(得分:1)

要调用ftoC方法,请使用以下语法:

ftoC(x); // Assuming x is the name of the float you created.

注意 :我在您的示例中注意到的一件事是,您是要声明以double variable = 0;传递的值,但您的方法是期待的float。如果将double传递给期望float的方法,则它将无法编译。您需要将double variable更改为float variable

注意注意 :还有一件事。您应该适当地命名您的变量。即使调用它value也比调用它variable更好。名称variable告诉读者没有关于它的目的。

注意x 3 :我注意到的另一件事是,您将variable设置为值0,但问题是指定:

  

在main方法中声明一个double类型的变量并将其初始化为一个值。 3。

所以你应该考虑用明显的东西替换0

答案 1 :(得分:0)

执行:

  

在main方法中声明一个double类型的变量并初始化它   一个价值。 3.在main中添加一行调用fToC方法和   将步骤2中声明的变量作为参数传递。

您只需调用该方法并将结果分配给变量,就像您在main方法的其余部分中所做的那样(对于选项1和2)。以下是修改main方法第一部分的方法:

import java.util.Scanner;

public class ExerciseOne
{
    public static void main( String[] args ) 
    {

        int choice;
        float initialF = 3; // assign variable to 3 initially

        float resultC = ftoC(variable); // simply call the method and assign the result to a variable

...然后是主要方法的其余部分。

答案 2 :(得分:0)

你的代码有点困惑。你已经定义了ftoC()两次,一次在 main ()内,一次是自己的函数。然后你的()函数什么都不做,只包括嵌入的 ftoC ()函数。实际上什么都没有被召唤。

解决方案是删除内部 ftoC ()。

注意:可以 ftoC ()和 ctoF () >主要(),但没有什么可以获得,真的,没有人这样做。

import java.util.Scanner;

public class ExerciseOne {
    public static void main( String[] args ) {

        int choice;
        double variable = 0;

        System.out.println( "What would you like to do?\n\n" );
        System.out.println( " 1 - Fahnrenheit to Celsius\n" );
        System.out.println( " 2 - Celsius to Fahrenheit\n" );
        System.out.println( " 3 - Quit]n" );
        Scanner dylan = new Scanner(System.in);
        choice = dylan.nextInt();

        if (choice == 1)
        {
            System.out.println( "What number do you want to convert to Celsius?" );
            float input = dylan.nextFloat();
            float output = ftoC(input);
            System.out.println( input + " degrees Fahrenheit is " +
                ftoC(input) + " degrees Celsius." );

        }

        if (choice == 2)
        {
            System.out.println( "What number do you want to convert to Fahrenheit?" );
            float input = dylan.nextFloat();
            float output = ctoF(input);
            System.out.println( input + " degrees Celsius is " +
                ctoF(input) + " degrees Fahrenheit." );
        }

        if (choice == 3)
        {
            System.out.println( "Exiting application.");
        }
    }

    public static float ftoC(float f) { /* same as before */ }
    public static float ctoF(float f) { /* same as before */ }
}

还有其他事情可以修复,但它们超出了这个问题的范围。