簡體   English   中英

運行循環后出現意外結果

[英]Unexpected result after running for loop

我正在構造函數中編寫一個名為Bank的類。 我將帳戶的初始余額設置為initialBalance accountsdouble[]數組類型的數據成員。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM