0

我有一个 main 方法和 4 个其他包含计算的函数类型方法,但是,我如何将每个方法调用到 main 中并继续打印出计算结果。另外,我目前遇到很多语法错误。

我已经尝试在需要时放置括号和大括号,但是,这只会导致更多错误。此外,我尝试在其他地方初始化字符串和整数,但似乎仍然无法正常工作。任何帮助将非常感激!

一些语法错误包括:';' 预计在第 60 行

插入 ';' 在第 60 行完成 localVariableDelcartion

每一行都会重复这些错误

import java.io.*;
//create the class


public class CirclemethodsFixedagain

{
    //main method
    public static void main(String[] args) throws IOException
    {


        BufferedReader myInput = new BufferedReader(new InputStreamReader(System.in));

        String numInput;
        String reqInput;
        String amountStr;
        double numInt = 0;
        double num = 0;


        System.out.println("This program will ask for a given user radius, then proceed to calculate the user input");
        System.out.println("The program will use four methods to achieve this, all calling back to the main method");
        System.out.println("Press any key to continue");
        numInput = myInput.readLine();

        // more user questions
        System.out.println("First, what would you like to calculate?");
        System.out.println("Enter '1' for Circumference, '2' for area, '3' for volume, or '4' for surface area");
        System.out.println("*NOTE* Pressing a key outside of this range or a regular character will re-prompt the original message");
        reqInput = myInput.readLine();
        numInt = Double.parseDouble(reqInput);

        // more user questions
        System.out.println("Now enter the radius of the required shape(Half of diameter)");
        System.out.println("*NOTE* Pressing a regular character will re-prompt the original message");
        numInput = myInput.readLine();
        num = Double.parseDouble(numInput);



    }
    //user created method, with each 
    public static int circlemethods(double circumference) throws IOException {

        {

            if (numInt == 1)
            {
                System.out.println("You chose to calculate circumference, given the radius :" + num);
                circumference = (Math.PI) * (2) * (num);
                System.out.print("The circumference of that sphere is :");
                return circumference;


            } 

            public static double circlemethods2 (double area)  throws IOException
            {   
                if (numInt == 2)
                {
                    System.out.println("You chose to calculate area, given the radius :" + num);
                    area = (Math.PI * num * num);
                    System.out.print("The area of the circle is :");

                    return area;   
                }   
            }     
            public static double circlemethods3 (double volume) throws IOException
            {
                if (numInput == 3)
                {
                    System.out.println("You chose to calculate volume, given the radius :" + num);
                    volume = (4 * Math.PI * num * num * num) / 3  ;
                    System.out.print("The volume of that sphere is : cm³");

                    return volume;
                }  
            }  
            public static double circlemethods4 (double surfaceArea) throws IOException  
                if (numInput == 4)
                {
                    System.out.println("You chose to calculate surface area, given the radius :" + num);
                    surfaceArea = 4 * Math.PI * num * num;
                    System.out.print("The Surface area of that sphere is :");

                    return surfaceArea;
                }
        }


    }
}
4

3 回答 3

0

以下是将解决问题的输入:

  1. 您不能在方法中声明方法,这不是 JAVA 语法。只需正确检查支撑。使用任何 IDE 来做同样的事情。
  2. 将 numInt, num 设为静态(类)变量。正如您在静态方法中使用的那样。
  3. 使用专有名称和 camelCasing 命名法来命名任何方法。
    |例如calculateCircleArea()、calculateCircleVolume()等。

希望这能解决您的问题。

于 2014-07-15T11:49:00.683 回答
0

您的大括号 - { 和 } 字符 - 不匹配。我已经修复了问题中代码的缩进,以便您可以更好地看到问题从哪里开始 - 在方法中circlemethods。此外,circlemethods4缺少它的大括号。

在整个程序中保持一致的缩进级别会使这类错误更容易被发现。

于 2013-03-25T01:42:28.550 回答
0

编译错误是由以下原因引起的:

  1. 您不能将方法放在其他方法中,将 circlemethods 2、3、4 移到 circlemethod1 之外。

  2. 您的 circlemethods 看不到 numInt 局部变量。它在 main 方法中声明,并且仅在该方法中可见。

我相信你不需要每个循环方法开头的 if 语句。你宁愿需要这样的东西:

if (numInt == 1)
{ 
    circlemethod1(radius);
} else if (numInt == 2)  { 
    circlemethod2(radius);
}

等在您的主要方法中。

您还可以更改每个 circlemethod 的参数名称,据我所知,它始终是半径。参数的当前名称是方法名称的良好候选者。

于 2013-03-25T01:55:29.203 回答