2017-03-05 67 views
-3

我有以下代码来运行复合兴趣程序,但我不知道它为什么不起作用。 Eclipse给我的错误消息:“本地变量的数量没有使用。”复合兴趣程序语法错误

package loops; 

public class CompoundInterest { 


    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println("How much did you put into the bank?"); 
     double deposit = IO.readDouble(); 
     System.out.println("What is the bank's interest rate?"); 
     double rate = IO.readDouble(); 
     System.out.println("How many times will it compound?"); 
     double compound = IO.readDouble(); 
     System.out.println("How many years?"); 
     double years = IO.readDouble(); 

     for (int i = 1; i<=20; i++){ 
      double amount = deposit * Math.pow(1+(rate/compound), years*compound); 
     } 

    } 

} 
+6

由于你从来没有产生任何输出,它警告你,你的计算都是浪费电子运动。 – bmargulies

+0

是的,我刚刚意识到这一点。谢谢。 – Chris

+1

为什么你重复完全相同的计算20次?使用你用过的公式就意味着你只需要做一次计算。 –

回答

0

严格来说,这是一个编译器警告(不是错误)。从技术角度来看,有些变量你没有使用,但是编译器告诉你这可能是一个错误。在这种情况下,正如其他人指出的那样,您为amount赋值,但实际上您从来没有对此做过任何事情。

作为一般提示,密切关注警告文本很有帮助 - 在这种情况下,它就是它所说的(您对amount变量没有做任何事情)。 Eric Lippert在如何调试小型程序时提供了非常有帮助的article,我建议您在有机会时查看这些小程序。 (他对“橡皮鸭调试”的解释使得这篇文章更值得一读)。

0

只需添加一个声明你的循环内使用amount为 -

for (int i = 1; i<=20; i++){ 
    double amount = deposit * Math.pow(1+(rate/compound), years*compound); 
    System.out.println(amount); // just a type of use 
} 

该警告是通知在声明中计算量暂时不使用。一旦使用(即使如上所示),警告将消失。

0

为什么要声明一个变量并初始化它,如果你没有在程序中使用它的话?这就是编译器通过抛出这个错误所要求的。

在程序中使用amount变量以任何方式打印amount的值将使此错误消失。