Hallo, ich bin blutiger Anfänger in Java. Nun haben wir folgende Aufgabenstellung bekommen:
Schreiben Sie ein Java-Programm SumOfNumbers.java. Erweitern Sie hierzu das Programm aus Aufgabe 3.4b dahingehend, das die eingelesene Zeichenkette die Form <Zahl>,<Zahl>,<Zahl>,... haben kann. Das Programm soll nun die durch Kommata getrennten Zahlen jeweils zu einem int umwandeln, aufaddieren und anschließend die Summe ausgeben.
Ich habe mir überlegt, dass man eine Zahlenfolge (die durch Kommata getrennt wird) als ganz lange Zahl behandelt. Dafür sollen sich die Teilzahlen aber immer "gemerkt" werden und sobald ein Komma kommt soll die Zahl aufsummiert werden und wieder = 0 gesetzt werden, sodass sich jede Zahl aus meiner Zahlenfolge neu gemerkt wird. Mein Problem ist, dass die Ausgabe nicht so funktioniert, wie sie sollte. Gebe ich 2 Zahlen ein, wird die erste ausgegeben. Gebe ich drei Zahlen ein, wird die Letzte ausgegeben. Ab 4 Zahlen werden alle außer die Letzte aufsummiert und ausgegeben. Kann mir jemand sagen, wieso?
Mein Code:
Schreiben Sie ein Java-Programm SumOfNumbers.java. Erweitern Sie hierzu das Programm aus Aufgabe 3.4b dahingehend, das die eingelesene Zeichenkette die Form <Zahl>,<Zahl>,<Zahl>,... haben kann. Das Programm soll nun die durch Kommata getrennten Zahlen jeweils zu einem int umwandeln, aufaddieren und anschließend die Summe ausgeben.
Ich habe mir überlegt, dass man eine Zahlenfolge (die durch Kommata getrennt wird) als ganz lange Zahl behandelt. Dafür sollen sich die Teilzahlen aber immer "gemerkt" werden und sobald ein Komma kommt soll die Zahl aufsummiert werden und wieder = 0 gesetzt werden, sodass sich jede Zahl aus meiner Zahlenfolge neu gemerkt wird. Mein Problem ist, dass die Ausgabe nicht so funktioniert, wie sie sollte. Gebe ich 2 Zahlen ein, wird die erste ausgegeben. Gebe ich drei Zahlen ein, wird die Letzte ausgegeben. Ab 4 Zahlen werden alle außer die Letzte aufsummiert und ausgegeben. Kann mir jemand sagen, wieso?
Mein Code:
Java:
import AlgoTools.IO;
public class SumofNumbers {
public static void main(String[] args) {
int ziffer;
int Ergebnis = 0;
String wort;
int Endresultat = 0;
int zahl= 0;
wort = IO.readString ("Bitte eine durch Kommata getrennte Zahlenfolge eingeben!");
for (int i = 0; i < wort.length (); i++) {
ziffer = (int) wort.charAt (i) - 48;
if (ziffer != -4){
zahl = zahl * 10 + ziffer;
}
else {
Endresultat = Endresultat + zahl;
zahl = 0;
}
}
IO. println (Endresultat);
}
}
Zuletzt bearbeitet von einem Moderator: