0

メイン メソッドと、計算を含む他の 4 つの関数型メソッドがありますが、それぞれをメインに呼び出して計算を出力するにはどうすればよいでしょうか。また、現在、多くの構文エラーが発生しています。

必要に応じてブラケットとブレースを配置しようとしましたが、エラーが増えました。また、他の場所で文字列と整数を初期化しようとしましたが、それでもうまくいかないようです。どんな助けでも大歓迎です!

いくつかの構文エラーには次のものがあります: ';' 60行目に期待

入れる ';' 60 行目の localVariableDecartion を完成させる

これらのエラーはすべての行で繰り返されます

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. 適切な名前とキャメルケースの命名法を使用して、メソッドに名前を付けます。
    |例: calculateCircleArea()、calculateCircleVolume() など。

これで問題が解決することを願っています。

于 2014-07-15T11:49:00.683 に答える
0

あなたの中かっこ - { と } 文字 - は一致しません。質問のコードのインデントを修正して、問題がどこから始まったのか (メソッド内) をよりよく確認できるようにしましたcirclemethods。また、circlemethods4ブレースがありません。

プログラム全体で一貫したインデント レベルを維持することで、この種のエラーを見つけやすくなります。

于 2013-03-25T01:42:28.550 に答える
0

コンパイル エラーの原因は次のとおりです。

  1. 他のメソッド内にメソッドを配置することはできません。circlemethod2、3、4 を circlemethod1 の外に移動します。

  2. circlemethods には numInt ローカル変数が表示されません。これはメイン メソッドで宣言され、そのメソッドでのみ表示されます。

各サークルメソッドの先頭に if ステートメントは必要ないと思います。あなたはむしろそのようなものが必要です:

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

あなたのメインメソッドでなど。

各サークルメソッドの引数の名前を変更することもできます。これは、常に半径であることを理解しています。引数の現在の名前は、メソッド名の良い候補です。

于 2013-03-25T01:55:29.203 に答える