Hallo,
ich hab eine Aufgabe, in der ich eine Methode static float[] createFloatArrayWithNumbers(int count) implementieren soll, die ein Array erzeugt, in dem count viele float-Werte gespeichert werden können. In jedem Speicherplatz des Arrays soll ein Wert gespeichert werden, der nicht 0.0f ist oder der Position entspricht.
Das habe ich dazu schon gemacht, aber leider wird mir nur das: [F@13c5982 ausgegeben und ich hab keine Ahnung warum...
Nun, System.out.println() verlangt einen Parameter vom Typ String als Parameter. Du übergibst aber keinen String, sondern ein anderes Objekt (in diesem Fall ein Array). Dann wird immer die toString()-Methode des Objekts aufgerufen, um eine String-Darstellung zu erhalten. Wenn man da nix eigenes bastelt, ist dies üblicherweise der Hash-Wert des Objekts und der Name der Klasse, das erklärt deine Ausgabe.
Falls ihr das mit den Imports noch nicht habt oder dürft, müsstest du dein Array eben in main abspeichern und mit einer weiteren Schleife ausgeben, so wie du das beim Erzeugen auch gemacht hast.
Dieses import Ding haben wir noch nicht gelernt und ich habe wirklich gar kein Vorwissen von Java und verstehe leider auch nicht genau was du mit:
"Array eben in main abspeichern und mit einer weiteren Schleife ausgeben"
meinst. Könntest du das bitte nochmal etwas detaillierter für mich erklären?
Also ich muss zugeben ich habe das immernoch nciht so ganz verstanden, aber ich habe das jetzt mal so gemacht, wie ich denke du es gemeint hast, also so:
Java:
publicstaticvoidmain(String[] args){for(int i=0; i < arr.length; i++){System.out.println(arr[i]);}}
aber dann sagt mir die gute Konsole das:
error: cannot find symbol
for(int i= 0; i < arr.length; i++) {
^
symbol: variable arr
location: class blatt5
C:\Users\C_I_N_J_A\Desktop\blatt5.java:47: error: cannot find symbol
System.out.println(arr);
^
symbol: variable arr
location: class blatt5
2 errors
<<< Process finished. (Exit code 1)
================ READY ================
Genau so meinte ich es, sehr gut Tipp für dein nächstes Problem: Wenn du int durch int teilst, ist das Ergebnis auch ein int, die Nachkommastellen werden also gar nicht berechnet. Das ist in dem Ausdruck i / 2 + 1 relevant, da sind alle beteiligten Terme nämlich ints
Man kann richtig spüren, wie die Erfolgserlebnisse bei dir kognitive Höhepunkte auslösen.. Auf diese Art wird man bald abhängig vom Programmieren, wird dadurch immer besser, irgendwann werden die Haare länger..