[英]Unexpected result after running for loop
我正在構造函數中編寫一個名為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]);
}
我面臨的問題是我試圖在循環后打印任何帳戶的余額。 它沒有顯示正確的值。
您是否應該為accounts
數組的每個元素分配initialBalance
...
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]
for(int i = 0; i < accounts.length; i++){
accounts[i] = initialBalance;
}
System.out.println("setting accounts[3]"+accounts[3]);
吻!
在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
。
我認為正確的代碼如下,它可以為您提供幫助:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.