Java Summe beliebiger Zahlen berechnen?

MrAmazing2  28.11.2020, 14:21

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?

jackthegiant 
Beitragsersteller
 28.11.2020, 15:03

Das ist nicht festgelegt. Das ist auch einer der Punkte bei dem es bei mir harkt.

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

jackthegiant 
Beitragsersteller
 28.11.2020, 15:40

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 ?

0
MrAmazing2  28.11.2020, 15:54
@jackthegiant

Java sagt dir was du falsch gemacht hast. Das steht in der Fehlermeldung. In dem Fall drei Sachen:

  1. 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.
  2. 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.
  3. 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));

}

}

1

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


RakonDark  28.11.2020, 14:15

aber vorsicht mit endlosschleifen solang man noch nciht gefunden hat wo der abbruch button ist ;) hihi

1
xxxcyberxxx  28.11.2020, 14:16
@RakonDark

In der Tat, hab auch noch was ergänzt gehabt.

An sich gibt uns der Fragesteller jedoch keinerlei Informationen, was er schon kann

0

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) .