Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus

Javanoob199

Mitglied
Hey, hat jemand eine Idee warum mein Programm, wenn ich es ausführen möchte nicht mein gewünschtes Ergebnis ausgibt. Würde mich über jede Hilfe freuen.

Hier ist nochmal die Aufgabenstellung zur Veranschaulichung.
Schreibe die Methode int[] increaseArray( int[] arr, int z ), die als Parameter ein Feld und einen int-Wert z besitzt. Die Methode increaseArray erhöht alle Werte des Feldes um den Wert z und gibt das veränderte Feld zurück. Beispiel: Werden ein Feld mit den Elementen 80,7,1,56,11,72,43,37 als erstes und der Wert 17 als zweites Argument übergeben, so wird dieses Feld verändert und als 97,24,18,73,28,89,60,54 zurückgegeben.

Java:
public static void main(String[]args)
    {
        int count[]={0,-2,-3,-4,-19,8,10,354};
        
        System.out.println ( increaseArray(count,2));
    }


public static int[] increaseArray(int [] arr, int z)
    {
        
        for (int e=0; e<arr.length;e++)
        {
                arr[e]=arr[e]+z;
        }
        return arr;
    }
 
Bitte auch immer das Problem beschreiben. Was geht denn nicht?

Vermutlich stört Dich nur die Ausgabe: Du bekommst halt nur ein [I@.... ausgegeben.

Arrays sind Referenzen und diese werden - so es keine explizite Implementierung gibt, eben mit Typ@HashCode ausgegeben. Und Du hast ein Array von int, was verkürzt als [I dargestellt wird.

Also schreib eine Methode, die das Array Zahl für Zahl ausgibt oder nutz eine Methode, die das für Dich bereits macht (z.B. Arrays.toString).
 
Ja genau die Ausgabe stört mich, aber ich weiß nicht genau wie ich eine Methode schreibe, die das Array Zahl für Zahl ausgibt. Könntest du mir da vielleicht helfen?
 
Da wäre jetzt direkt die Frage wieder: woran scheitert es?

Als erste schnelle Hilfe: Schreib erst einmal ein
System.out.println ( Arrays.toString(increaseArray(count,2)));

Dann hast Du erst einmal die erste Ausgabe und damit ein Erfolgserlebnis: Dein Code funktioniert!

Und dann kannst Du Dir anschauen:
a) Erstelle eine Methode, die nichts zurück gibt und die ein int Array entgegen nimmt.
b) Mach eine Schleife, die über alle Elemente des Arrays geht
c) in der Schleife gibst Du das Element, an dem Du gerade bist, aus.
d) Hinter die Schleife kommt noch die Ausgabe mit einer neuen Zeile.
 
edit.
eigentlich solte es laufen das Array hatt ja eine toString Methode. wurde auch schon gesagt sorry
 
Zuletzt bearbeitet:
Println erwartet einen String also musst du auch einen zurück geben und nicht ein int.
Nö. Probier einfach selbst:
Java:
    public static void main(String[]args)
    {
        int intVar = 7;
        System.out.println(intVar);
    }

Oder schau einfach in die Dokumentation von PrintStream und staune, wie viele println Methoden es da doch gibt (incl. einer println(int))
 
eigentlich solte es laufen das Array hatt ja eine toString Methode. wurde auch schon gesagt sorry
Die toString Methode eines Arrays läuft auf eben dieses [I@HashCode hinaus, da dies die Object Implementierung ist.

Genannt wurde die Implementation in der Klasse Arrays, die mehrere statische Methoden toString anbietet.
 
Die toString Methode eines Arrays läuft auf eben dieses [I@HashCode hinaus, da dies die Object Implementierung ist.

Genannt wurde die Implementation in der Klasse Arrays, die mehrere statische Methoden toString anbietet.
ich habe es gemerkt hätte den post ja gelöscht ging nicht mehr . alles gut von meiner Seite .

ps Hauptursache meiner Seite war das ich die Klammern also das Array nicht gesehen habe . brauche wohl doch eine Brille.😎
 
Da wäre jetzt direkt die Frage wieder: woran scheitert es?

Als erste schnelle Hilfe: Schreib erst einmal ein
System.out.println ( Arrays.toString(increaseArray(count,2)));

Dann hast Du erst einmal die erste Ausgabe und damit ein Erfolgserlebnis: Dein Code funktioniert!

Und dann kannst Du Dir anschauen:
a) Erstelle eine Methode, die nichts zurück gibt und die ein int Array entgegen nimmt.
b) Mach eine Schleife, die über alle Elemente des Arrays geht
c) in der Schleife gibst Du das Element, an dem Du gerade bist, aus.
d) Hinter die Schleife kommt noch die Ausgabe mit einer neuen Zeile.
Wenn ich das eingebe steht bei mir, dass Arrays eine undeclared variable ist.
 

Neue Themen


Zurück
Oben