![](/img/trans.png)
[英]ArrayIndexOutOfBoundsException when iterating through an array
[英]Why do my loops stop early when iterating through and array
因此,我嘗試遍歷4 x 3的對象數組,並根據用戶輸入設置每個對象的值,但是我遇到了一個問題,其中遍歷該數組的迭代停止在6而不是總數為12。已經嘗試了幾種編寫迭代器的方法,但是它們總是失敗。 這是代碼。
Card[][] field = new Card[3][2];
void setvals(){
Scanner scanner = new Scanner(System.in);
for(int row= 0; row < field.length; row++){
for(int col = 0; col < field[row].length; col++) {
String input = scanner.nextLine();
field[row][col] = new Card();
field[row][col].makeCard(input);
}
}
}
我也嘗試了<=而不是<,但是隨后它使我的數組索引超出范圍。 我不知道問題是什么。
你說:
所以我試圖遍歷對象的4 x 3數組...
這是您的數組: Card[][] field = new Card[3][2];
。
那不是4x3陣列。 它是一個3x2的數組,這意味着循環中應該有6次迭代,這就是正在發生的情況。 這里沒有錯誤。
您的問題與數組:
Card[][] field = new Card[3][2];
您希望數組為4 x 3
,然后將尺寸設置為:
Card[][] field = new Card[4][3];
您的代碼無法正常運行的原因是,由於您當前有一個2 x 3
數組,因此需要進行6次迭代。 如果需要,一個4 x 3
數組將求值為12次迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.