Java Anfänger, Array

Savaron

Ensign
Registriert
Jan. 2007
Beiträge
212
löschen plz

Wo liegt da mein Problem? Bzw ich weiß ja wo es liegt, nur versteh ich es nicht. Ich deklariere doch gerade ein Array mit "zeilen" Spalten, wie kann ich dann mit m, wobei i < spalten außerhalb des Index kommen

Code:
public class Matrix {
	
    static double[][] erzeuge(int zeilen, int spalten) {
    	double[][] m = new double[zeilen][]; 
    	for ( int i = 0; i <= zeilen; i++ ) 
    	  m[ i ] = new double[ spalten ];
    	return m;
	}
    
    static void set(double[][] m, int zeile , int spalte , double wert) { 
    	m[zeile][spalte]=wert;
    }
    
    public static void main(String[] args) {
    	double[][] m = erzeuge(3,2);
    	set(m,2,3,14);
    	IO.print(m[1][1]);
    }
}


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at Matrix.erzeuge(Matrix.java:7)
	at Matrix.main(Matrix.java:16)

Edit: nevermind..
 
Zuletzt bearbeitet:
Es muss heißen:
Code:
for ( int i = 0; i < zeilen; i++ ) m[ i ] = new double[ spalten ];
Also ohne das "=". Bedenke, dass ein Array mit Größe 3 von 0-2 geht und nicht von 1-3 oder gar 0-3 (so wies bei dir wäre)! Beim Aufruf von "set(m,2,3,14);" machst du auch nen Fehler, denn das existiert gar ned!
 

Ähnliche Themen

Zurück
Oben