2013-02-03 141 views
-4

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

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; 

     } 
    } 
+1

这是一个调试器可以非常有用的。有人向你提供了答案,但是单步执行代码很可能会向你显示你的错误。下次尝试自己解决问题。正如其他人所说,这是作业的目的。你从别人的答案中学到了什么? – Mikezx6r

+0

@AEFXX我的程序是COMPLETE,我不会要求任何人为我做。我有一个简单的问题,我错过了什么,如果你不打算帮忙不打扰张贴。更何况,如果我自己没有做任何事情,我甚至不知道我想问什么!为什么是帮助论坛如此充满活力!? –

+0

@ Mikezx6r我看到了,我试过了,好像我仍然得到了同样的(最后一个)答案中的同样的事情。另外,我一直在自己做这件事,当我用尽我所能想到的所有事情时,我只会寻求帮助。是不是帮助论坛的重点! –

回答

1

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

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

在我使用了你的建议之后,我的房间伙伴向我指出,我还需要让我进入另一个地方,这就是为什么我得到相同的30个结果。老实说,我一直在研究这个问题很长时间,我只是看不出问题所在。谢谢你的帮助。我希望更多的人能像这样更有帮助。 –

2

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