-1

前のプログラムへの応答、単純に new balance(); を配置します。public static void main は機能しません。それがないと、プログラムは実行されますが、神経質にユーザーの質問が出力されます。

import java.io.*;

public class cInterest {

    public static void main(String[] args)   throws IOException
    {
       //new balance ; 
    }
    public static  double balance(double principal, double rate, double years) throws IOException{

        double amount = 0;

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

        System.out.print("How much would you like to take out? ");
        input = myInput.readLine ();
        principal = Double.parseDouble (input);        

        System.out.print("Enter the interest rate: ");
        input = myInput.readLine ();
        rate = Double.parseDouble (input);

        for (int i = 1; i < years; i++) {
            amount = principal * rate * years;
            amount += principal;
        }
        return amount; //- principal;
    }
}
4

3 に答える 3

2

balancenewはクラスではなくメソッドなので、キーワードは使用できません。代わりに、次のようにメソッドを呼び出します。

public static void main(String[] args)   throws IOException
{
    double balance = balance(0.0, 0.0, 1.0); // Awkward hard-coded variables! Ew!
    System.out.println(balance);
}

しかし、ユーザーが変数を上書きしようとしているのに、なぜこれらの変数をメソッドに渡すのでしょうか? メソッドbalanceは、ユーザー入力を収集するのではなく、残高の計算のみを担当する必要があります。メソッドでそれを行うことができますmain

public static void main(String[] args)   throws IOException
{
    // Gather user input.
    String input;
    BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));

    System.out.print("How much would you like to take out? ");
    input = myInput.readLine ();
    double principal = Double.parseDouble (input);        

    System.out.print("Enter the interest rate: ");
    input = myInput.readLine ();
    double rate = Double.parseDouble (input);

    System.out.print("Enter the number of years: ");
    input = myInput.readLine ();
    double years = Double.parseDouble (input);

    // Now do the calculations...
    double balance = balance(principal, rate, years); // Much clearer!
    System.out.println(balance);
}

public static double balance(double principal, double rate, double years) {
    // Calculate the end balance based on the parameters, and return it.
}

ユーザー入力の収集を独自の専用メソッドに入れることはさらに良いことですが、私はそのままでは十分に話題から外れています。

于 2013-03-07T16:43:44.387 に答える
0

balance()どこかでメソッドを明示的に呼び出す必要があります。

于 2013-03-07T16:45:22.170 に答える
0

System.out.printlnの代わりに使用しSystem.out.printます。そうしないと、ストリームがフラッシュされません。詳細については、 PrintStream javadocを参照してください。

于 2013-03-07T16:46:06.163 に答える