ich möchte zwei Vektor miteinander addieren. Die Eingaben beinhalten zwei int-Arrays a und b. Die Funktion, die ich programmiert habe soll elementweise beide Vektoren addieren, falls sie die gleiche Dimension enthalten, ansonsten null.
Der Code ist soweit fehlerfrei, aber irgendwie, gibt er trotz system.out.println Ausgabe nicht das Ergebnis aus. Was habe ich falsch gemacht??
Java:
packageVektorrechnung;publicclassVektor{staticint[]a;staticint[]b;publicstaticint[]addiere(int[]a,int[]b){int[] c =newint[a.length];if(a.length == b.length){// int [c = new int [a.length];for(int i =0; i<a.length; i++){
c[i]= a[i]+ b[i];}return c;}else{return c =null;}}publicstaticvoidmain(String[] args){int[]a ={1,2};int[]b ={9,8};int[]c =addiere(a, b);System.out.println(c);}}
Das ist keine Fehlermeldung
[ Steht für array
I steht für integer
@3e25a5 ist irgendeine speicheradresse
So sieht das Array aus, wenn man den direkt per system.out.println ausgibt.
Für eine etwas leserliche Darstellung solltest du java.util.*; importieren und dann
Java:
System.out.println(Arrays.toString(c));
benutzen.
Bei unpassenden Dimensionen solltest du imho lieber eine IllegalArgumentException werfen, statt null zurückzugeben.
i.Allg sollte man weniger mit Arrays herumhantieren: auf sie sollte man nur zurückgreifen, wenn man irgendwelche speziellen datenstrukturen bastelt. Also lieber nicht "roh verzehren". Zum beispiel was die Darstellung angeht, gibt es solche Probleme bei Collections nicht.
:applaus:
Hier nochmal der Code ohne Fehler für alle anderen.
Java:
packageVektorrechnung;importjava.util.*;publicclassVektor{staticint[]a;staticint[]b;publicstaticint[]addiere(int[]a,int[]b)throwsException{int[] c =newint[a.length];if(a.length == b.length){// int [c = new int [a.length];for(int i =0; i<a.length; i++){
c[i]= a[i]+ b[i];}return c;}else{thrownewException();}}publicstaticvoidmain(String[] args)throwsException{int[]a ={1,2};int[]b ={9,8};int[]c =addiere(a, b);// aus der java.util gibt es die Klasse Arrays mit der MethodeSystem.out.println(Arrays.toString(c));}}
... throws IllegalArgumentException
// und
throw new IllegalArgumentException("May not pass null (das solltest du vielleicht noch abfragen) or arrays with different lengths to this method");