-2

メソッドを使用して値を表示し、それを別の 10 進形式で交互に表示しようとしています。主な問題は、入力後に値を呼び出すことができないことです。それが私が認識している唯一の問題ですが、私が把握していないことが他にある場合は、洞察に非常に感謝しています.

//*************************************************
//Hwk8 This Program displays Java Methods
//Written By: Daniel Kellogg
//Last Modified: 11/05/12
//************************************************
import java.util.Scanner;
import java.io.*;  
import java.text.DecimalFormat;
import javax.swing.JOptionPne;

public class Hwk8 {
        public static void main (String[] args) throws IOException {
                double value; 
                double value2;
                double value3;
                double value4;
                double value5;

                value = getValue();
                System.out.println(value);

                value2 = getValue2();
                System.out.println(value2);

                value3 = getValue3();
                System.out.println(value3);

                value4 = getValue4();
                System.out.println(value4);

                value5 = getValue5();
                System.out.println(value5);

                System.exit(0);
        }


        public static double value()
        {
                double value;
                value = JOptionPane.showInputDialog("enter value");
                return value;
        }

        public static double value2(value) throws IOException
        {
                double value2;
                value2 = roundToInteger(value);
                return value2;
        }       

        public static double value3(value) throws IOException
        {       
            double value3;
            value3 = roundToTenths(value);
            return value3;
        }

        public static double value4(value) throws IOException
        {
                double value4;
                value4 = roundToHundredths(value);
                return value4;
        }

        public static double value5(value) throws IOException
        {       
                double value5;
                value5 = roundToThousandths(value);
                return value5;
        }
}
4

2 に答える 2

1

メソッドの宣言が無効です:

public static double value2(value)

パラメータタイプを指定する必要があります。

public static double value2(double value)

次に、そのパラメーターを呼び出すときに、そのパラメーターに引数を提供する必要があります。

value2 = getValue2(value);

その他の注意事項:

  • また、メソッドの開始時にローカル変数をすべて宣言するのではなく、最初に使用する時点でローカル変数を宣言することを強くお勧めします。
  • 呼び出す必要はありませんSystem.exit(0)-メソッドが終了すると、プロセスはすでに終了mainします(スレッドを作成していないため)
  • あなたのメソッドは決してスローしませんIOException-なぜスローする可能性があると宣言しているのですか?
  • 各メソッドは、ローカル変数を宣言し、値を割り当てて、値を返します。なぜワンステップでそれをしないのですか?

    return roundToTenths(value); // Complete body of value3
    

    (その時点で、メソッド自体はもちろん無意味ですroundToTenths。代わりに呼び出すことができます...)

于 2012-11-06T10:13:52.190 に答える
0

のような名前の関数を呼び出していgetValueますが、引用した関数の名前はvalue. おそらく半分完全な改名?

あなたのでは、 identifier だけを介して関数mainにアクセスすることはできません。これは、それをシャドウするその名前でローカル変数を定義しているためです。したがって、関数を使用するには、その完全修飾名を使用する必要があります。value valuevalue Hkw8.value

于 2012-11-06T10:11:12.920 に答える