Java Summe beliebiger Zahlen berechnen?
Ich soll ein Programm schreiben ,welches beliebig viele ganze Zahlen engegennimmt und deren Summe berechnet.
Die Summe soll durch System.out.println() ausgegeben werde.
Ich steh grade ein bisschen auf dem Schlauch, als absoluter Java-Noob, und würde mich über Tipps freuen.
Wie genau soll es die Zahlen "entgegennehmen" ?
Args?
User-Input?
Oder reichts wenn du die Zahlen in ein Array schreibst, und dieses dann an 'ne Funktion (das "Programm") übergibst?
Das ist nicht festgelegt. Das ist auch einer der Punkte bei dem es bei mir harkt.
3 Antworten
Genau dafür gibt es die reduce-Methode. Ist ein Ein-Zeiler :
System.out.println(Stream.of(args).mapToInt(Integer::parseInt).reduce(0, (a, b) -> a + b));
Die beliebig vielen Zahlen kannst du dann einfach beim Kommandozeilen-Aufruf übergeben:
java nameDerJavaDatei 1 2 3 4
Java sagt dir was du falsch gemacht hast. Das steht in der Fehlermeldung. In dem Fall drei Sachen:
- Du hast ; nach "main(String[ ] args)". An der Stelle wird die Methode main definiert, und was in der Methode main enthalten ist, das schreibt man in die {..} hinter main(..). Ein Strichpunkt ist hier falsch.
- Du hast nur die Hälfte meiner Antwort kopiert. ".mapTo" gibt es nicht. Was du brauchst ist ".mapToInt(Integer::parseInt)". Und auch dann fehlt noch der Teil dahinter.
- Du musst die verwendeten Bibliotheken am Anfang der Datei importen. Indem Fall Steam:
import java.util.stream.*;
Die ganze Datei Summe.java würde dann bei dir so aussehen:
import java.util.stream.*;
public class Summe {
public static void main(String[ ] args) {
System.out.println(Stream.of(args).mapToInt(Integer::parseInt).reduce(0, (a, b) -> a + b));
}
}
Du machst eine (Endlos-)Schleife in welcher du jeweils eine Zahl einliest, auf die Summe draufzählst und diese dann anschließend ausgibst.
Um die Endlosschleife zu beenden, Programmiererst du eine Anfrage nach einem Wort, welches diese abbricht. Z.B. Exit
aber vorsicht mit endlosschleifen solang man noch nciht gefunden hat wo der abbruch button ist ;) hihi
In der Tat, hab auch noch was ergänzt gehabt.
An sich gibt uns der Fragesteller jedoch keinerlei Informationen, was er schon kann
irgendwas müsst ihr ja schon im unterricht gehabt haben .
eine schleife damit sich was wiederholt , eine abbruch bedingung damit das auch irgendwann aufhört , eine eingabe damit du was eingeben kannst und dann variablen damit du die eingaben summieren kannst (also festhalten kannst) .
Ich hab im Terminal ein Programm mit dieser Methode geschrieben:
public class Summe {
public static void main(String[ ] args);
{
System.out.println(Stream.of(args).mapTo);
}
}
Aber das Programm wird nicht kompiliert. Was hab ich falsch gemacht ?