# ein Java Ganzzahlen Addierer mit Zahleneingabe



## schnosi (11. Nov 2009)

Hey Leute,

hatte euch ja letzte Woche um die Zeit schon mit meinen Hausaufgabe belästigt und ich muss es leider wieder tun. Habe aber schon 3 von 4 Aufgaben geschafft *hehe*
Nun brauch ich aber bei der letzten Aufgabe Hilfe. Folgende Aufgabe ist zu erledigen:
Wir sollen eine Klasse Addierer implementieren, die den Anwender wiederholt zur Eingabe von postiven Ganzzahlen auffrodert, die dann addiert werden sollen. Der Anwender beendet das Programm mit Eingabe einer negativen Zahl oder der 0. Anschließend soll die Summe der positive Ganzzahlen ausgegeben werden.


```
class Addierer{

	public static void main(String[] args){
		int sum = 0;									
		
		int zahl = Terminal.askInt("Zahl eingeben: ");	
		for(sum ; zahl <=0; sum = ??? )


		
	}
}
```

So und nun habe ich leider wirklich keine Ahnung wie es weiter geht. Ich verstehe nicht, wie er eine Summe ermitteln kann, wenn es doch nur eine Integervariable zahl gibt. Man müsste ja sozusagen unendlich viele Variablen erzeugen, wo dann halt Eingabewerte hineinkommen, aber das wäre ja viel zu viel Schreibarbeit.
Könnt ihr mir weiterhelfen?!

Vielen Dank im Voraus.
Liebe Grüße, schnosi.


----------



## Michael... (11. Nov 2009)

Statt der for eine while Schleife verwenden, welche die Eingabe überprüft:
while(zahl>0) {...}


----------



## Leroy42 (11. Nov 2009)

schnosi hat gesagt.:


> Man müsste ja sozusagen unendlich viele Variablen erzeugen



Nein! Du mußt einfach nur die Anweisung *zahl = Terminal.askInt("Zahl eingeben: "); *
solange aufrufen wie nur positive Werte eingegeben wurden und diese dann in der
Variablen *sum* summieren.


----------



## Schandro (11. Nov 2009)

entweder benutzt du en Array bzw. ne Collection, um alle Zahlen zu speichern und sie im nachhinein zu addieren.

Oder du addierst einfach zu "sum" immer die aktuelle Eingabe hinzu...


----------



## Leroy42 (11. Nov 2009)

Schandro hat gesagt.:


> entweder benutzt du en Array bzw. ne Collection, um alle Zahlen zu speichern und sie im nachhinein zu addieren.


Schwachsinn. :autsch:



Schandro hat gesagt.:


> Oder du addierst einfach zu "sum" immer die aktuelle Eingabe hinzu...



Schon besser!


----------



## schnosi (11. Nov 2009)

Ja okay... das war mir klar, dass ich da immer die aktuelle Eingabe hinzu addieren muss. Aber wie mache ich das? Vom logischen her müsste ich für jede Zahl eine neue Variable erzeugen. So wie ihr es aber erklärt, muss das nicht sein... sagt mir bitte wie... bin am verzweifeln ...


----------



## Michael... (11. Nov 2009)

Michael... hat gesagt.:


> Statt der for eine while Schleife verwenden, welche die Eingabe überprüft:
> while(zahl>0) {...}


Tipp erweitert...

```
while(zahl>0) {
    ...
    zahl = Terminal.askInt("Zahl eingeben: ");
}
```


----------



## Leroy42 (11. Nov 2009)

```
public static void main(String[] args){
  int sum = 0;	
  int zahl=0;								
  do {
    zahl = Terminal.askInt("Zahl eingeben: ");	
    if (zahl > 0)
      sum += zahl;
  } while (zahl > 0);
  System.out.println("Summe = "+sum);
}
```


----------



## Michael... (11. Nov 2009)

Leroy42 hat gesagt.:


> ```
> public static void main(String[] args){
> int sum = 0;
> int zahl=0;
> ...


Spielverderber
Wenn man die Reihenfolge in der Schleife ändert, könnte man sich die if-Abfrage sparen.


----------



## Leroy42 (11. Nov 2009)

Michael... hat gesagt.:


> ```
> while(zahl>0) {
> ...
> zahl = Terminal.askInt("Zahl eingeben: ");
> ...



Ach dein fehlerhafter Code wurde mit Absicht geschrieben? :bahnhof:

Dann entschuldige mein Versehen deine _"Lehrmethoden"_ sabotiert zu haben.

 D)


----------



## Leroy42 (11. Nov 2009)

Michael... hat gesagt.:


> Wenn man die Reihenfolge in der Schleife ändert, könnte man sich die if-Abfrage sparen.



Hääh? Wie das denn? :autsch:


----------



## Michael... (11. Nov 2009)

Leroy42 hat gesagt.:


> Hääh? Wie das denn? :autsch:


meint so:

```
public static void main(String[] args){
	int sum = 0;  
	int zahl=0;                               
	do {
		sum += zahl;
		zahl = Terminal.askInt("Zahl eingeben: ");  
	} while (zahl > 0);
	System.out.println("Summe = "+sum);
}
```


----------



## schnosi (11. Nov 2009)

Ey ihr seid super. Vielen, vielen Dank. Manchmal sieht man den Wald echt vor Bäumen nicht mehr.... schrecklich.
Liebe Grüße, schnosi


----------



## Leroy42 (11. Nov 2009)

Michael... hat gesagt.:


> ```
> public static void main(String[] args){
> int sum = 0;
> int zahl=0;
> ...



Stimmmt. Hast ja Recht!


----------

