wie kann man ein 2-Dimensionales Int Array auf Null-Referenzen prüfen?
Eigentlich sollte dies ja unnötig sein, da der Compiler es nicht durchlaufen lässt, wenn das Array nicht initialisiert sein sollte, bzw. ist das Array mit 0 gefüllt. Jedoch steht in der Aufgabenstellung, dass ich das 2D-Array auf null-Referenzen prüfen und falls es auftritt eine Leerzeile eingefügt werden soll.
Zur Erklärung: Es wird aus einer anderen Methode ein zufällig generiertes Array übergeben und es soll hier ausgegeben werden und auf diese null-Referenz geprüft werden.
Bitte beachtet nicht die Variablennamen. Diese werden noch geändert.
Java:
publicstaticvoidprintMatrix(int[][] m)//unvollständig{int[][] test =newint[m.length][m[0].length];
test = m;for(int i =0; i < test.length; i++){for(int j =0; j < test[i].length; j++){System.out.print(test[i][j]+" ");}System.out.println("");}}
Ich hatte schon versucht es mit einer if-Abfrage zu testen, ob irgendein Wert des Arrays null ist, aber dies ist leider nicht möglich.
Java:
for(int i =0; i < test.length; i++){for(int j =0; j < test[i].length; j++){if(test[i][j]==null){System.out.println("");}else{System.out.print(test[i][j]+" ");}}System.out.println("");}
Wenn du das Array so anlegst nicht, aber du legst es in diesem Fall nicht selbst an, sondern bekommst es übergeben.
Du kannst das auch als new int[3][] anlegenen, dann hast du ein Array voller null
for(int i =0; i < test.length; i++){if(test ==null|| test[i]==null){System.out.println("");}else{for(int j =0; j < test[i].length; j++){System.out.print(test[i][j]+" ");}System.out.println("");}}
Leider funktioniert es nicht wie es funktionieren soll. So wie ich es verstehe wird geprüft ob das Array "test" an sich und ob das Array "test" jeweils null ist und dies wird geprüft bis "test[test.length-1]".
Korrekt?
So wie ich es verstehe wird geprüft ob das Array "test" an sich und ob das Array "test" jeweils null ist und dies wird geprüft bis "test[test.length-1]".
Korrekt?
Das Problem ist halt, dass ich den Code auf ein Überprüfungstool hochladen muss und dieses Tool den Code mit einem vorgegebenen Code vergleicht oder so. Dann werde ich wohl mal den Betreiber des Tools fragen müssen.
Aber vielen Dank für die Hilfe
Inwiefern ist das ein "Problem", und was für Auskünfte erhoffst du dir vom "Betreiber des Tools"?
Mögliche Null-Referenzen sind:
a) das Array m als solches. Dies musst du ganz am Anfang der Methode überprüfen. Wenn m null ist, fliegt bereits beim Aufrug von m.length eine NullPointerException.
b) eines der int[]-Arrays in m ist null. Dies musst du zu Beginn der äußeren for-Schleife überprüfen.
Ich vermute mal du hast eine ganz konkrete Aufgabenstellung und das "Tool" prüft bei der Abgabe deiner Lösung die Erfüllung der Aufgabe und die ist halt noch nicht so wie erwartet, egal ob jetzt das Codefragment das du zuletzt gepostet hast richtig oder falsch ist.
Ich vermute mal du hast eine ganz konkrete Aufgabenstellung und das "Tool" prüft bei der Abgabe deiner Lösung die Erfüllung der Aufgabe und die ist halt noch nicht so wie erwartet, egal ob jetzt das Codefragment das du zuletzt gepostet hast richtig oder falsch ist.
Du musst die Test suite verstehen! Soll bei null/ Fehler etwas ausgegeben werden - oder soll false/ true zurückgegeben werden? Das sollte in der Aufgabenstellung stehen.
Es ist gängige Praxis, mit manchen Methoden/ Programmen einige Tests zu unterziehen.
Und wenn du gar nicht weiterkommst, kann ich Pseudocode aufschreiben, aber wenn man "die Theorie von" Arrays verinnerlicht hat, dann ist das kein Problem. Problematischer wirds in der Realisierung in anderen Programmiersprachen, C, C++ zum Beispiel. Vieles schaute man sich ab und wurde dann verbessert.
In der Aufgabenstellung stand drin, dass ich das Array aus einer anderen Methode in diese Methode übergebe und dann den übergebenen Wert auf null prüfe. Falls es null ist, soll eine Leerzeile ausgegeben werden.
Es funktioniert jetzt zum Glück alles