我正在构建一个程序,该程序计算并输出以下值:5年后1%的利率范围为$ 1000- $ 20000(1000、2000、3000等),且无复利。

例)1000将是1050,而2000将是2100(A = P(1 + rt)的公式)。

目前,我正在尝试以这样一种方式来编写代码:运行时,它会在不同的行上垂直列出1000-20000中的所有值,紧随其后的是所有值,且不会影响复利:

1000
2000
...
20000
1050.0
2100.0
...
21000.0

(以上数字旨在垂直出现在另一个下方)

我要教自己的一项内容是将值从方法返回到主方法。在这种情况下,我的calculateAmountNoCompounding方法具有一个返回值,我将其设置为`double testValue =(j *(1 + .01 * NUMBER_OF_YEARS));。但是,当我尝试通过将其放置在打印行函数中将其返回到main方法时,出现错误“ .class期望”。我在第25行的实际return语句上也遇到了同样的错误。是否有一种简单有效的方法来处理此问题?

public class DepositCalculator {

public static final double ANNUAL_INTEREST_RATE = 1.0;
public static final int NUMBER_OF_YEARS = 5;
public static final int MONTHS_PER_YEAR = 12;
public static final int LOW_DEPOSIT_AMOUNT = 1000;
public static final int HIGH_DEPOSIT_AMOUNT = 20000;
public static final int DEPOSIT_AMOUNT_INCREMENT = 1000;

public static void main(String[] args) {

    for (int i = 0; i <= HIGH_DEPOSIT_AMOUNT - DEPOSIT_AMOUNT_INCREMENT; i = i + DEPOSIT_AMOUNT_INCREMENT) {
        System.out.println(LOW_DEPOSIT_AMOUNT + i);

    }
    System.out.println(double testValue);

}

public static double calculateAmountNoCompounding(double deposit, double annualInterestRate, int numberOfYears) {

    for (double j = LOW_DEPOSIT_AMOUNT; j <= HIGH_DEPOSIT_AMOUNT - DEPOSIT_AMOUNT_INCREMENT; j = j + DEPOSIT_AMOUNT_INCREMENT) {
        double testValue = (j * (1 + .01 * NUMBER_OF_YEARS));
    }
    return double testValue;
}

}

最佳答案

您不会在calculateAmountNoCompounding中呼叫main
double是此处的类,因此将其编写为Double
您应该在Double testValue;循环上方初始化for,以便在您要返回它时可以看到它。
无需指定类型即可调用现有变量。您不能执行return double testValue;,而只能执行return testValue;。由于3.,Java已经知道testValue是双精度值。 System.out.println(double testValue);同样。

09-28 01:36