仅显示1个结果

时间:2013-02-03 02:15:49

标签: java

我有这个家庭作业的问题,我遇到的问题是当我运行程序并输入值时我只得到一个结果 例如,如果我输入30年的年数,我会得到30次“30 14730.576123040439”。我可以做些什么来获得正确的结果(即1-30岁而不是30年30次的正确结果)。

   public class FinancialApp57 
   {
       public static void main(String[] args) 
       {
           //variables
           double intRate, invAmt;
           int yrs;
           String inv = JOptionPane.showInputDialog("Enter an investment amount:");
           invAmt = Double.parseDouble(inv);
           String rate = JOptionPane.showInputDialog("Enter an intrest rate: ");
           intRate = Double.parseDouble(rate);
           String yr = JOptionPane.showInputDialog
                   ("Enter the lenght of investment(in years): ");
           yrs = Integer.parseInt(yr);

           futureInvestmentValue(invAmt,intRate/12,yrs);
       }

       public static double futureInvestmentValue
               (double investmentAmount,double monthlyIntrestRate,int years)
       {
           double FutureValue = 0;
           int i = 1;
           FutureValue=
                   investmentAmount*Math.pow((1+monthlyIntrestRate/100),years*12);

           while(i<years)
           {            
               System.out.println(years+"\t" + FutureValue);
               i++;
           }
           return FutureValue;

       }
   }

2 个答案:

答案 0 :(得分:2)

你没有重新计算FutureValue 30次,你只计算一次,然后打印30次。将FutureValue的计算放在循环中并相应地调整其参数

答案 1 :(得分:1)

你的代码打印的值是“年”,当你输入'30',然后int years = 30,如果你想要像(1,2,3,4,5 ....),你应该打印“我”而不是“年”,所以必须:

while(i<=years) {            
    System.out.println(i+"\t" + FutureValue);
    i++;
}
return FutureValue;