[英]printing array out of bounds java
我有一個看起來像這樣的對象數組:
1:[volvo,200],[美洲虎900]
2:[寶馬300]
3:[斯柯達,100],[(無輸入)],[(無輸入)]
這是我的方法,只打印有值的區域(內部有一些格式,但這不是問題)。 出現錯誤錯誤...我該怎么辦? 謝謝!
public static void printMat(Car[][] carMat){
int row = 0;
int column = 0;
while ((carMat[row][column] != null)){
System.out.printf("( %-8s : %,9d )", carMat[row][column].getName(), carMat[row][column].getPrice());
if (column == carMat[row].length - 1){
System.out.print("\n");
row++;
column = 0;
} else {
column++;
}
}
}
您已經檢查了是否要離開當前行的末尾,這很好,但是還沒有檢查行是否已用完。
在row++
,添加檢查row
是否超出了carMat
數組的末尾。
if (row >= carMat.length)
break;
假定您至少有一行。 甚至在進入while
循環之前,您可能要檢查是否至少有一行。
for(int row = 0; row < car.length; row++){
for(int column = 0; column < car[row].length; column++){
//print statement
if(column == car[row].length - 1){
System.out.println();
}
}
}
此實現使用一對for
循環,外部僅關心行中數組的長度,內部僅關心行的長度。
但是,從性能的角度來看,我確實發現您的單循環實現很有趣。
本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.