[Java] Addition von benutzereingegebenen Zahlen

ComputerNOOB

New member
Hallo,

ich habe ein Problem in Java. Ich soll alle von dem Benutzer eingegebenen Zahlen addieren. Die eingabe von 0 soll die Eingabe des Nutzers beenden und die Addition starten ....
hier was ich bisher habe:
BufferedReader stdin =
new BufferedReader (new InputStreamReader(System.in));
int zahl;
int start;
int x =0;
BufferedReader Eingabe = new BufferedReader
(new InputStreamReader(System.in));


System.out.println("Zum Starten der Addition '0' eingeben");

System.out.println("Wieviele Zahlen sollen addiert werden?");
zahl = Integer.parseInt(Eingabe.readLine());

if ( x < zahl)

System.out.println("Geben Sie eine Zahl ein:");
zahl = Integer.parseInt(Eingabe.readLine());
Kann mir jemand helfen??
Dankööö
 
Zuletzt bearbeitet:
Für was brauchst du den 1. BufferedReader stdin?

So wie ich die Aufgabe verstanden habe sollst du so viele Zahlen einlesen können, bis der Benutzer irgendwann eine 0 eingibt. Dann musst du nicht auch noch Fragen wie viele Zahlen der Benutzer eingeben soll. Du kannst ja einfach überprüfen ob die Zahl eine 0 ist und dann das Ergebnis ausgeben.

Natürlich brauchst du dafür eine Schleife. Welche ist relativ egal, aber da du nicht genau weißt wann die 0 kommt, würde ich while() nehmen.

Code:
int erg = 0;

while(zahl != 0)
{
 zahl = Integer.parseInt(Eingabe.readLine()); // hier müsstest du noch eine Exception abfangen, falls Text eingegeben wird und nicht in Int gewandelt werden kann
 erg = erg + zahl;
}

In deinem Fall hast du Glück, dass die Abbruch-Bedingung gerade die Zahl 0 ist. Da machts nämlich nichts wenn du die letzte Eingabe (also eine 0) nochmal aufs Ergebnis addierst. Wäre die Abbruch-Bedingung jetzt -1 müsstest du vor dem Addieren (erg = erg + zahl) nochmal prüfen ob jetzt die -1 eingegeben wurde oder nicht... Oder du zählst am Ende immer nochmal eins ab, was aber nicht sehr elegant wäre.

Edit: Hier nochmal mit Exception-Handling:
Code:
int erg = 0;

while(zahl != 0)
{
 try
 {
  zahl = Integer.parseInt(Eingabe.readLine());
  erg = erg + zahl;
 }
 catch (NumberFormatException ex)
 {
   System.out.println("Eingabe war keine Zahl!");
 }
}
 
Zuletzt bearbeitet:
Dickes Dankeschön!! das mit "try" und "catch" hatten wir leider noch nicht im Unterricht gehabt...bin relativ neu in Java und kanns eig garnicht...
 

Online-Statistiken

Zurzeit aktive Mitglieder
1
Zurzeit aktive Gäste
27
Besucher gesamt
28

Beliebte Forum-Themen

Zurück
Oben Unten