![](/img/trans.png)
[英]Why is the following piece of code in Java shows error while I try to set a name for an object of a String class?
[英]Why the following piece of java code throws run time error?
int[][] input = new int[3][];
int count = 1;
for(int i = 0; i <= 2 ; i++ ) {
for(int j = 0; j <= 2; j++) {
input[i][j] = count++;
}
}
第五行引發錯誤。
數組的第二維為空。
int[][] input = new int[3][];
嘗試這個:
int[][] input = new int[3][3];
您需要初始化第二維
1) int[][] input = new int[3][3];
要么
2)
for(int i = 0; i <= 2 ; i++ ){
input[i] = new int[3];
}
因為沒有指定第二個數組的維數。
這應該運行:
int[][] input = new int[3][3];
int count = 1;
for(int i = 0; i <= 2 ; i++ ){
for(int j = 0; j <= 2; j++){
input[i][j] = count++;
}
}
參見可執行示例
因為您沒有指定第二維尺寸。
int[][] input = new int[3][];
這種類型的數組稱為參差不齊的數組 。 您必須定義每一行的列大小。 像這樣:
input[0]=new int[2];//for row 1 (row 1 contain 2 column)
input[1]=new int[5];//for row 2 (row 2 contain 5 column)
input[2]=new int[1];// for row 3 (row 3 contain 1 column)
因此,根據需要為每一行定義列大小
/ *標記數組是多維數組,其中的行具有不同的列數。 * /
class Ragged
{
public static void main(String args[])
{
//declaration of a ragged array
int arr[][] = new int[3][];
//declaration of cols per row
arr[0] = new int[4];
arr[1] = new int[2];
arr[2] = new int[3];
int i, j;
for(i =0; i< arr.length; i++)
{
for(j =0 ; j< arr[i].length; j++)
{
arr[i][j] = i + j+ 10;
}
}
for(i =0; i< arr.length; i++)
{
System.out.println();//skip a line
for(j =0 ; j< arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
}
//-------------more----------------
int temp[];//int array reference
//swap row2 and row3 of arr
temp = arr[1];
arr[1] = arr[2];
arr[2] = temp;
System.out.println();//skip a line
for(i =0; i< arr.length; i++)
{
System.out.println();//skip a line
for(j =0 ; j< arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
}
}//main
}//class
/ *要聲明一個衣衫array的數組,請定義一個多維數組,其中缺少最后一個維的值。
顯式定義所有行的最后一個維度的大小。 * /
您需要在初始化期間為第二個數組指定大小。 您也可以使用array的.length屬性來避免硬編碼的大小。
int[][] input = new int[3][3];
int count = 1;
for(int i = 0; i <= input.length ; i++) {
for(int j = 0; j <= input[i].length; j++) {
input[i][j] = count++;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.