Java Methode erstellen wie?
Hallo, wir sollen eine Java-Methode erstellen, die die Summe aller Einzelzahlen bis zu einer beliebigen Zahl berechnet. Wir sollen die Aufgabe mit While-schleifen coden.
Kann jemand mir die Aufgabe in Worten erklären und ein Beispiel nennen. Und dann sagen wie ich anfangen kann??
Danke im Voraus
2 Antworten
Naja, was braucht man? Eine Variable, welche die bisherige Summe speichert. Die initialisiert man schlauerweise mit 0.
int summe = 0;
Dann braucht man eine Schleife, die bis zur gewünschten Zahl hochzählt und die aktuelle Zahl zur Summe addierst:
int aktuelleZahl = 1;
while (aktuelleZahl <= zielZahl)
{
summe += aktuelleZahl;
aktuelleZahl++;
}
Die Methode sollte nun das Ergebnis wieder zurückliefern:
return summe;
Zielzahl muss als Parameter an die Methode übergeben werden. Deine Aufgabe besteht jetzt darin zu googeln oder in den Unterlagen Deines Informatikunterrichts nachzuschauen, wie man in Java eine Methode mit einem Parameter deklariert ;-) In diese packst Du dann den obigen Code und rufst sie auf.
Dachte nur, weil die Antwort quasi 1 Minute nach Erstellen der Frage da war.
Achso - nee, kein Copy & Paste :-D Ich kann nur einigermaßen schnell tippen...
Die Aufgabe in einfachen Worten erklärt:
Das Programm soll nach einer Zahl fragen. Du gibst z.B. eine 7 ein. Dann soll das Programm die Summe aller Zahlen bis 7 bilden.
Also 1+2+3+4+5+6+7 = 28
Warum ihr das mit einer while-Schleife und nicht sinnvollerweise mit einer for-Schleife (oder mit der Gaussschen-Summenformel) machen sollt, weiß ich aber nicht. Das ist eine der eigenartigen Sonderbedingungen, die Schülern manchmal gestellt werden. Wahrscheinlich, damit die Schüler lernen, Probleme auf verschiedene Arten und Weisen zu lösen.
Ich hab dir mal ein paar verschiedene Varianten gebastelt:
import java.util.*;
import java.util.stream.*;
public class GaussSum {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Bitte geben Sie ein, bis zu welcher Zahl die Summe gebildet werden soll: ");
int ende = in.nextInt();
// Lösung mit for-Schleife
int summe = 0;
for (int i = 1; i <= ende; ++i) {
summe += i;
}
System.out.println("Lösung mit for-Schleife: " + summe);
// Lösung mit IntStream
System.out.println("Lösung mit IntStream: " + IntStream.rangeClosed(1, ende).sum());
// Lösung mit der Gaussschen Summenformel
System.out.println("Lösung mit der Gaussschen Summenformel: " + (ende * (ende + 1) / 2));
// Lösung mit while-Schleife
// Ha, hier musst du selbst nachdenken :-P
}
}
War wohl nicht das erste Mal, dass diese Frage hier auftaucht.