我正在编写一个名为Bank
的类并在构造函数中。我将帐户的初始余额设置为initialBalance
。 accounts
是double[]
数组类型的数据成员。
public Bank(int n, double initialBalance){
accounts=new double[n];
for( double i:accounts)
i=initialBalance;
System.out.println("setting accounts[3]"+accounts[3]);
}
我面临的问题是我试图在循环后打印任何帐户的余额。它没有显示正确的值。
答案 0 :(得分:2)
您是否应该将initialBalance
分配给accounts
数组的每个元素......
public Bank(int n, double initialBalance){
accounts=new double[n];
for( int i = 0; i < n; i++) {
accounts[i]=initialBalance;
}
System.out.println("setting accounts[3]"+accounts[3]);
}
另外,访问数组元素时要小心,它可能不存在。即accounts[3]
答案 1 :(得分:2)
for(int i = 0; i < accounts.length; i++){
accounts[i] = initialBalance;
}
System.out.println("setting accounts[3]"+accounts[3]);
KISS!
答案 2 :(得分:1)
使用Java中的foreach循环无法修改数组。但是,您可以使用传统的for
循环来执行此操作:
public Bank(int n, double initialBalance){
accounts=new double[n];
for(int i = 0; i < accounts.length; ++i)
accounts[i] = initialBalance;
System.out.println("setting accounts[i]"+accounts[i]);
}
另外,另一个红旗:如果小于0的值作为n传递,如果n为负,则会产生NegativeArraySizeException
。
答案 3 :(得分:0)
在我看来,正确的代码如下,它可以帮助你:
public class Bank{
public Bank(int n, double initialBalance){
double accounts[]=new double[n];
for(int i = 0; i<accounts.length; i++){
accounts[i]=initialBalance;
System.out.println("setting accounts[]"+accounts[i]);
}//end of for
}//end of constructor
public static void main(String a[]){
Bank b = new Bank(2, 12);
}//end of main
}//end of class