所以得到这个代码,我想打印出等式的最终总和,但是我得到了这个错误,说...
Test.java:14: error: cannot find symbol
System.out.println(amount);
^
symbol: variable amount
location: class Test
这是因为它超出了范围吗?不确定这里的问题是什么。
public class Test{
public static void main(String[]args){
double p = 1000;
double r = 0.1;
double t = 5;
double amount;
for(int a = 0; a < t; a++){
amount = p * (1 + r*t);
p = amount;
}
System.out.println(amount);
}
}
答案 0 :(得分:4)
amount
在循环内声明,因此无法在循环外访问。我会读到variable scope in Java。请参阅有关&#34;循环范围&#34;
在循环内创建的任何变量都是LOCAL TO LOOP。这意味着一旦退出循环,就无法再访问该变量!这包括在循环签名中创建的任何变量。
了解详情:http://www.java-made-easy.com/variable-scope.html#ixzz4gjHz61kY
您可以通过在循环外声明amount
来修复它。
double amount = 0d;
for(int a = 0; a < t; a++){
amount = p * (1 + r*t);
p = amount;
}
System.out.println(amount);
答案 1 :(得分:0)
此代码给出编译时错误 - “本地变量可能尚未初始化”。
您必须在使用之前初始化变量。
局部变量(方法中的变量)不会获得默认值,我们必须显式初始化它。
注意:只有实例变量(类中的变量)才能获得默认值。