Zahlen von 1 - 1000 in einer while Schleife addieren JAVA?
Wie schon gefragt in der Überschrift ist zwar ein leichtes Beispiel aber ich komme nicht auf das Richtige :)
Vielen Dank vorzeitig :)
3 Antworten
![](https://images.gutefrage.net/media/user/Kruemelpastete/1444747615_nmmslarge.jpg?v=1444747615000)
int ergebnis = 0;
int counter = 1;
while (counter <= 1000) {
ergebnis += counter;
counter++;
}
System.out.println(ergebnis);
Kompakter wäre es in einer For-Schleife, am elegantesten wäre eine rekursive Methode.
![](https://images.gutefrage.net/media/user/phigeek/1495093038262_nmmslarge__94_66_306_306_d1823db646ce5b7810495140af058619.png?v=1495093038000)
Randbemerkung: Alle Zahlen von a bis b zu addieren geht auch noch viel rascher ohne Schleife:
summe = (b-a+1) * (a + b) / 2
Ist zwar ohne Schleife, doch effizienter geht es für große Abstände wohl kaum.
(Siehe dazu auch die Java-Lösung auf http://www.programmieraufgaben.ch/aufgabe/zahlensumme-1/3uy94fbo)
![](https://images.gutefrage.net/media/user/DKP31/1444748516_nmmslarge.jpg?v=1444748516000)
Danke sehr :) werd ich mir merken :) lösungen in einer for schleife hätte ich bereits gefunden aber ich dachte mir while schleife .. zum probieren halt ..
Danke nochmals :)
![](https://images.gutefrage.net/media/user/DKP31/1444748516_nmmslarge.jpg?v=1444748516000)
package at.htlklu;
public class Zusammenzähler {
/**
* @param args
*/
public static void main(String[] args) {
int counter = 1;
while (counter <= 1000) {
int num1= counter;
counter++;
int num2= counter;
int erg= num1 + num2;
int ergebnis = erg + counter;
System.out.println(ergebnis);
}
}
}
blödsinn halt da num1 und num2 immer gleich bleiben ..
kurz korriegiert :)
![](https://images.gutefrage.net/media/user/DKP31/1444748516_nmmslarge.jpg?v=1444748516000)
und ich weiß das ich korrigiert falsch geschrieben habe .. xD
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
In einer While-Schleife:
int i = 1;
int result = 0;
while(i <= 1000)
{
result += i;
++i;
}
For-Schleife:
int i;
int result;
for(i = 1, result = 0; i <= 1000; result += ++i);