Wie kann man in Java mit der For-Schleife alle Zahlen von 1 bis Zur eingegebenen Zahl miteinander addieren?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Diese Aufgabe entspricht im Wesentlichen dem hier:

https://programmieraufgaben.ch/aufgabe/zahlensumme-1/3uy94fbo

Dort sind schon 4 Lösungen offengelegt.


Dabei gibt es generell drei Lösungsansätze

Die Iterative Methode ist in anderen Lösungen hier auf Gutefrage bereits genannt worden (mit for- bzw. while-Schleife). Die Frage war ja explizit nach einer FOR-Schleife. Daneben gibt es aber meist noch zwei andere Wege, die ich hier aufzeigen will:

1. Die Methode mit einer Formel:

summe := höchsteZahl * (höchsteZahl + 1) / 2

Diese Methode hat gegenüber der for-Schleife den Vorteil, dass sie immens schneller ist. Also: In der Praxis sowas nie mit for-Schleife lösen. Zum Lernen der For-Schleife ist das ja ok.

2. Die Methode vermittelst Rekursion ist zwar nicht die schnellste, aber meist die am schnellsten entwickelte:

summe(höchsteZahl) := 1, genau dann, wenn höchsteZahl schon 1 ist

oder aber

summe(höchsteZahl) := höchsteZahl + summe(höchsteZahl - 1).


int result = 0;
for (int i = 1; i <= eingabe; i++) {
    result += i;
}
System.out.println(result);

Das result += i; ist zu lesen wie result = result + i;
Da ein Programm erst das was rechts vom = steht auswertet bedeutet das nimm den aktuellen werd von result, addiere den Wert von i drauf und überschreibe result mit dem neuen Wert aus result+i. Dann hat result den um i erhöhten Wert, die for schleife erhöht i um 1 und dann geht das spiel von vorne los.

Grüße foxx

holofoxx  15.12.2016, 16:44

ob du den wert der eingabe noch mit dazu haben willst oder nicht entscheidet dadrüber ob du <= oder < verwenden musst.

0

so ungefähr:

  private static int test(int bisZahl)
{
int zwischenergebnis = 0;
for (int i = 1; i <= bisZahl; i++)
{
zwischenergebnis += i;
}
return zwischenergebnis;
}

Das kannst du dann z.B. mit test(20) aufrufen, und es kommt 210 raus.

Weißt Du denn grundsätzlich, wie man eine for-Schleife benutzt und wie man in Java addiert?

WeLLDoNeXX 
Fragesteller
 15.12.2016, 16:39

Ja das Standard wissen halt :)

0
oelbart  15.12.2016, 16:44
@WeLLDoNeXX

Naja...inzwischen haben Dir ja Andere die Komplettlösung geliefert...

0