Java 在循环体之后找不到符号
所以得到了这个代码,我想打印出方程的最终和,但我得到了一个错误,它说Java 在循环体之后找不到符号,java,loops,compiler-errors,Java,Loops,Compiler Errors,所以得到了这个代码,我想打印出方程的最终和,但我得到了一个错误,它说 Test.java:14: error: cannot find symbol System.out.println(amount); ^ symbol: variable amount location: class Test 这是因为它超出了范围吗?我不太确定这里有什么问题 public class Test{ public static void main(S
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);
}
}
amount在循环内声明,因此不能在循环外访问。我会读到关于你的故事。请参阅关于循环范围的部分
在循环内创建的任何变量都是循环的局部变量。这意味着一旦退出循环,就无法再访问变量!这包括在循环签名中创建的任何变量
阅读更多:
您可以通过在循环之外声明数量来修复它
double amount = 0d;
for(int a = 0; a < t; a++){
amount = p * (1 + r*t);
p = amount;
}
System.out.println(amount);
此代码给出编译时错误-局部变量可能尚未初始化 在使用变量之前,必须对其进行初始化 方法中的局部变量无法获得默认值,我们必须显式初始化它
注意:类中只有实例variableVariables获得默认值。在for循环开始之前声明double amount。amount是for循环的本地值是的,因为它超出了范围。不确定金额点是什么,因为您只是将值赋给p。在这种情况下,您只需执行p=p*1+r*t并直接打印出pGet术语即可。代码甚至还没有编译,更不用说执行了。