-1

响应之前的程序,只需放置新的余额();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

balance是方法,不是类,所以不能使用new关键字。相反,您想调用该方法,如下所示:

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,否则,您的 Stream 将不会被刷新。您可以参考PrintStream javadoc了解更多信息。

于 2013-03-07T16:46:06.163 回答