Tenk over det:
int[][] multD = new int[5][];
multD[0] = new int[10];
Er dette hvordan du oppretter en todimensjonal matrise med 5 rader og 10 kolonner?
Jeg så denne koden på nettet, men syntaksen ga ikke mening.
Prøv følgende:
int[][] multi = new int[5][10];
... som er en forkortelse for noe som dette:
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
Merk at hvert element vil bli initialisert til standardverdien for int
, 0
, slik at det ovennevnte også er ekvivalent med:
int[][] multi = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
Det vanligste formspråket for å lage en todimensjonal matrise med 5 rader og 10 kolonner er:
int[][] multD = new int[5][10];
Alternativt kan du bruke følgende, som ligner mer på det du har, selv om du må eksplisitt initialisere hver rad:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Prøv:
int[][] multD = new int[5][10];
Merk at i koden din er bare den første linjen i 2D-matrisen initialisert til 0.
Linje 2 til 5 eksisterer ikke engang. Hvis du prøver å skrive dem ut, vil du få null
for alle av dem.