return Fehler .class expected

Status
Nicht offen für weitere Antworten.

mad.21

Mitglied
Hallo,

ich hoffe ihr könnt mir bei meinem Problem helfen:

Java:
public int matrixMaxElement (int [][] matrix){
    int max = matrix[1][1];
    int fehler[][] = new int [][]{{-999999},{-999999}};
    for (int i =0;i<matrix.length;i++){
        for (int j =0; j<matrix[i].length;j++){
            if(matrix[i][j] != matrix[j][i]){
                return fehler[][];
            }         
            else{
                if (matrix[i][j] > max){
                    max = matrix[i][j];
                }
            }
        }
     
    }
    return max;
}

Für Zeile 7 bekomme ich immer eine Fehlermeldung und ich weiß nicht warum!

Der Sinn der 3., 6. und 7. Zeile soll sein: Zur Überprüfung, ob die beiden Zeilen wirklich gleich lang sind (lt. Aufgabenstellung)

Bitte helft mir.
 

diggaa1984

Top Contributor
und was genau sollst du zurückgeben .. int und int[][] sind 2 versch. dinge

hm edit: jaja erst lesen dann denken ^^ .. das maximale element.
was du prüfst ist glaube die Symmetrie der Matrix .. ist das gewollt? wenn du bei der Prüfung zufällig ne Matrix erwischt, die nicht n*n struktur hat, dann bekommst ne arrayIndexOutOfBoundsException
 
Zuletzt bearbeitet:

mad.21

Mitglied
Das ganze Programm soll das größe Element einer beliebigen zweidimensionalen Matrix zurückgeben.

Der Fehlercode soll -999999 zurückgeben, falls die Zeilen der Matrix nicht alle gleich lang sind.
 

Michael...

Top Contributor
return fehler[][] geht nicht
der Methodenkopf soll wohl
Code:
public int[B][][][/B] matrixMaxElement (int [][] matrix){
heissen, und die Zeile
Code:
return fehler;

<edit>
Sorry, hab mich verguckt, nächste Vermutung
[JAVA=3]int fehler = -999999;[/code] und [JAVA=7]return fehler;[/code]
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
ne dachte ich auch erst ^^ ... aber unten gibt er ja im erfolgsfall max aus .. das fehlerding kannst du dir eigentlich sparen und gleich -9999999999 oder Integer.MIN_VALUE zurückgeben
 

mad.21

Mitglied
Also der Methodenkopf ist so vorgegeben.

Und

return fehler;

klappt nicht, da Fehlermedlung "incompatible types -found int [][] but expected int"
 

diggaa1984

Top Contributor
quote mich selbst :D

was du prüfst ist glaube die Symmetrie der Matrix .. ist das gewollt? wenn du bei der Prüfung zufällig ne Matrix erwischt, die nicht n*n struktur hat, dann bekommst ne arrayIndexOutOfBoundsException

hast vielleicht überlesen ... was meinst du dazu mad.21?
 

mad.21

Mitglied
Sorry, hatte das wirklich überlesen.

Ja, ich prüfe die Symmetrie, weil ich gedacht habe, dass ich so die Aufgabenstellung "Überprüfen Sie, dass alle Zeilen der Matrix wirklich gleich lang sind" erfülle, also das hoffe ich zumindestens.

Aber ehrlich gesagt: Ich weiß nicht, ob das so richtig ist wegen arrayIndexOutOfBoundsException. Genau in solch einem Moment, soll er mir -999999 ausgeben.
 

mad.21

Mitglied
Ja, da hast du recht. Muss ich erhlich zugeben.

Kannst du mir vielleicht sagen, wie ich überprüfen kann, ob die Anzahl der Elemente vom 1. [] und 2. [] gleich groß ist?
 

diggaa1984

Top Contributor
Java:
public class Test {
	
	public static void main(String[] args) {
		int[][] matrix = {{1,2},{3,4}};
		//int[][] matrix = {1,2};
		//int[][] matrix = {{1,2},{4}};
		int max = matrix[0][0];
		
		for(int i=0; i<matrix.length; i++) {
			if (! (matrix[i].length == matrix.length)) {
				System.out.println(Integer.MIN_VALUE);
				return;
			} else {
				//bestimme max bezueglich der Elemente aus matrix[i]
			}
		}
		
		//System.out.println(max);
	}
}

musst es nur noch berechnen :D .. du kannst spassenhalber mal die jeweiligen matrizen da oben probieren, und wirst sehen dass der MIN_VALUE angezeigt wird, weil Längen nicht passen

Die Sache mit der Exception ist die, dass du nicht auf den Index zugreifen kannst ohne das die Exception geworfen wird, das heisst du musst vor Prüfen auf Symmetrie oder Inhalt wissen, ob das Feld lang genug ist, um dir nich den Ablauf zu zerschiessen
 

mad.21

Mitglied
Vielen vielen Dank diggaa1984, mein Programm funktioniert jetzt, bis auf ein Problem:

Wenn die Eingabe {{1,2},{3,4}} ist, zeigt er mir 4 an. - Ist ja richtig

Wenn die Eingabe {{1,2},{3,4,5}} ist, zeigt er mir -999999 an. - Ist ja richtig

Wenn die Eingabe {{1,2,5},{3,4,6}} ist, zeigt er mir -999999 an. - Und das ist ja falsch. Ich habe jetzt als Ausgabe 6 erwartet. Warum ist das so?

nochmal mein Code überarbeitet:

Java:
public int matrixMaxElement (int [][] matrix){
    int max = matrix[0][0];
    int fehler = -999999;
    for (int i =0;i<matrix.length;i++){
        for (int j =0; j<matrix[i].length;j++){
            if(matrix[i].length != matrix.length){
                return fehler;
            }         
            else{
                if (matrix[i][j] > max){
                    max = matrix[i][j];
                }
            }
        }
     
    }
    return max;
}
 

mad.21

Mitglied
Okay,

und wieso kann ich nicht einfach

[JAVA=6] if(matrix.length != matrix[j].length);[/code]

schreiben?

Fehlermeldung "ArrayIndexOutOfBoundsException: 2" bei Eingabe von {{1,2,5},{3,4,6}}?

Das verstehe ich nicht.


Edit:
ist doch die Überprüfung, ob alle Zeilenlängen gleich lang sind oder?
 
Zuletzt bearbeitet:

Michael...

Top Contributor
i ist der Index der die Zeilen durchläuft
j ist der Index der die Spalten durchläuft
Deshalb bekommst Du für {{1,2,5},{3,4,6}}
--> j=2 --> ArrayIndexOutOfBounds
 

Schumi

Bekanntes Mitglied
Weil wahrscheinlich einer der Indizies aus der Zeile kommt. Sprich 2 ist und eine 3. Zeile hast Du nicht.
 

Michael...

Top Contributor
Eine Lösungsmöglichkeit wäre folgende
Java:
public int matrixMaxElement(int[][] matrix) {
	int max = matrix[0][0];
	int fehler = -999999;
	int lineLen = matrix[0].length;
	for (int i = 0; i < matrix.length; i++) {
		if (lineLen != matrix[i].length)
			return fehler;
		for (int j = 0; j < matrix[i].length; j++) {
			if (matrix[i][j] > max) {
				max = matrix[i][j];
			}
		}
	}
	return max;
}
wobei solche Felder wie {{},{1, 2}} weiterhin eine ArrayOutOfBoundsException auslösen würden
 

mad.21

Mitglied
Vielen Dank Michael...,

ich finds nur doof, dass ich da nicht von alleine drauf gekommen bin, ich könnte *****.

Aber was genau sagt folgendes aus:

[JAVA=4]int lineLen = matrix[0].length;[/code]

Heißt das, es wird am Anfang der Matrix angefangen zu zählen der Länge oder die Länge = 0 oder...?

Und das ich die Abfrage der Länge mal wieder an die falsche Stelle gesetzt habe (da Aufgabenstellung falsch verstanden); dafür könnt ich mich auch schwarz ärgern...

Aber trotzdem: Danke!
 

diggaa1984

Top Contributor
das liefert dir quasi die Länge der ersten Zeile .. wenn die Matrix eine n*n - Struktur hat ists ja egal, welche Zeile du da als Referenz nimmst
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
J int[] return fehler, was heißt es? Java Basics - Anfänger-Themen 2
M aRRAY zurückgeben(return)FEHLER:( Java Basics - Anfänger-Themen 3
R return-Fehler Java Basics - Anfänger-Themen 2
H wieso fehler ? must return a type of int. Java Basics - Anfänger-Themen 4
G switch-case mit Fehler auf return-Wert-Typ Java Basics - Anfänger-Themen 2
G return fehler bei try catch Java Basics - Anfänger-Themen 8
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
F Return-Anweisung Java Basics - Anfänger-Themen 2
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
Z Methoden return nullprüfung Java Basics - Anfänger-Themen 7
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
R Return in If Java Basics - Anfänger-Themen 10
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4
L Return Fragen Java Basics - Anfänger-Themen 4
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben