Summe von Zahlen - Hilfe!

julia_qwery

Mitglied
Hallo Freunde,

ich bräuchte mal Eure hilfe da ich als Java Einsteigerin nicht weiter komme.

Java:
package Uebung;

public class Uebung_neu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		for ( int i=0; i<11; i++)  {
			
			int summe=0;
			int x = summe + i;
			
			System.out.println(x);
			
		}	
	}
}

Und zwar müssen hier die Zahlen zwischen 1 - 10 addiert und zum Schluss ausgegeben werden, also 55.

Viele dank im vorraus!!
 
Zuletzt bearbeitet:

nvidia

Bekanntes Mitglied
Java:
public class Summe{
        public static void main(String ... args){
            System.out.println(IntStream.range(1,11).sum());
        }    
    }
 

JavaMeister

Gesperrter Benutzer
Java:
public class Summe{
        public static void main(String ... args){
            int n = 10;
            System.out.println((n*n +n) / 2);
        }    
    }
 

Zel2491

Aktives Mitglied
Java:
package Uebung;

public class Uebung_neu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		for ( int i=0; i<11; i++)  {
			
			int summe=0;
			int x = summe + i;
			
			System.out.println(x);
			
		}	
	}
}

Du speicherst die Werte immer nur IN der Schleife, du brauchst eine Variable außerhalb der Schleife, z.B.
Java:
int summe = 0;
for(int i=0; i<11; i++) {
// Hier auf summe aufaddieren
}
zu Beginn. In jedem Schleifendurchlauf addierst du dein i. Und nach der Schleife gibst du deine Variable summe wieder aus.

Im Moment führst du die Berechnungen immer nur innerhalb der Schleife aus (vor allem initialisierst du immer innerhalb der Schleife neu).

--> Außerhalb der Schleife initialisieren, in der Schleife addieren, nach der Schleife ausgeben.
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Ich könnte mich echt auf dem Boden wälzen vor Lachen. Da fragt ein weibliches forenmitglied nach einer ganz eindeutigen Anfänger Frage und statt das die cracks hier in dem Sinne helfen ,dass man ihr erklärt was falsch ist, werden hier möglichst komplexe lösungen angeboten. Das ist echt wie ein schwanzvegleich pubertierender Teenager.

Danke an Zel das er sich die Mühe gemacht hat es vernünftig zu erklären.

Gruß

Claus
 

JavaMeister

Gesperrter Benutzer
Liegt halt da dran, dd man eine Frage stellt, die hundert Fach beantwortet wurde.

Habe auch schon mal bessere Antworten von Moderatoren gelesen, die die schlechte Situation besser zusammen fassen ;)
 

Gucky

Top Contributor
Ob das mit dem Schwanzvergleich wirklich so war, kann ich nicht beurteilen aber dass, sobald jemand sich nicht mehr als "Einsteiger" betitelt, sondern als "Einsteiger" + "in" alle aus der Ecke geschossen kommen und fertige Lösungen posten und sogar du, JavaMeister, der du immer ein glühender Verfechter von Google ist dein Freund gewesen bist oder immer noch bist, postest eine fertige Antwort. :D


Zu Zels Antwort habe ich noch hinzuzufügen: Du hast in der Schleife eine Variable summe und eine Variable x und die Laufvariable. Du addierst i auf Summe, speicherst das Ergebnis in x und gibst x aus. Summe hat gar keine Chance größer zu werden oder ihren Wert mit in den nächsten Durchlauf zu nehmen, weil das Ergebnis von summe + 1 wieder in summe gespeichert werden müsste.
ABER WOHLGEMERKT, GILT DAS HIER ZUSÄTZLICH ZU DEM POST VON ZEL. ;)
 

julia_qwery

Mitglied
Sorry, habs leider immernoch nicht.

Laut den Satz von zel:
--> Außerhalb der Schleife initialisieren, in der Schleife addieren, nach der Schleife ausgeben.
Müsste es so aussehen:


Java:
public class Uebung2_neu {

	public static void main(String[] args) {
	
		
		int summe = 0 ;
		int x;
		
		for ( int i=0; i<11; i++)  {
			
			
		x=summe + i;
				
		}
	
		System.out.println(x);
	}
}

Auch wenn ich das System.out.println(x) in der Schleife lasse, zählt er mir nur die Zahlen von 1 - 10 auf.
 
Zuletzt bearbeitet:

Zel2491

Aktives Mitglied
Ja, jetzt hast du meine Antwort und die von Gucky etwas vermischt ;-)

Wir spielen deinen Code mal durch:

summe ist zu Beginn 0, x hat keinen Wert.

Schleifendurchlauf Nummer 1:

Java:
x = summe + i;
ergibt: x = 0 + 1 = 1

Schleifendurchlauf Nummer 2:

x = 0 + 2 = 2

usw.

Nimm x erst einmal komplett raus und benutze nur die Variable summe. Die Idee dabei ist allerdings, dass der Wert von summe nach dem 1., 2. und 3. (bis hin zum 10.) Schleifendurchlauf weiter benutzt wird. Summe muss nach dem 1. Schleifendurchlauf den Wert 1 besitzen und nach dem 2. den Wert 3 --> 1 (aus dem 1. Durchlauf) + 2 = 3.

Das wichtige ist halt, dass du immer mit dem aktuellen Wert weiter rechnest.
 

julia_qwery

Mitglied
Vielen Dank für die Antwort. Ihr seid wirklich super hier!!!!

Hab es jetzt lösen können, verstehe aber nicht wirklich was gemacht wird.

Java:
public class Uebung2_neu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int summe = 0;
		int x;

		for (int i = 0; i < 11; i++) {

			summe += i;

		}

		System.out.println(summe);
	}
}

Durch rumprobieren habe ich jetzt summe+=i . Das funktioniert auch gut, doch was passiert jetzt dort. Was wird dort denn addiert? Normalerweise addiert man ja zwei Variablen.
 
Zuletzt bearbeitet:

Saheeda

Top Contributor
"summe += i" ist einfach eine Kurzschreibweise von "summe = summe + i".

Dasselbe kannst du auch mit den anderen Grundrechenarten machen:
"summe -= i" -->"summe = summe - i"
"summe *= i" -->"summe = summe * i"
"summe /= i" -->"summe = summe / i"
 

Zel2491

Aktives Mitglied
Durch rumprobieren habe ich jetzt summe+=i . Das funktioniert auch gut, doch was passiert jetzt dort. Was wird dort denn addiert? Normalerweise addiert man ja zwei Variablen.



Java:
for (int i = 0; i < 11; i++) {
 
summe += i;
 
}

Spielen wir das mal durch.

1. Schleifendurchlauf:

summe = 0
i = 0

summe += i --> summe = 0 + 0

2. Schleifendurchlauf:

summe = 0
i = 1

summe += i --> summe = 0 + 1 = 1

3. Schleifendurchlauf:


summe = 1
i = 2

summe += i --> summe = 1 + 2 = 3

4. Schleifendurchlauf:


summe = 3
i = 3

summe += i --> summe = 3 + 3 = 6

5. Schleifendurchlauf:

summe = 6
i = 4

summe += i --> summe = 6 + 4 = 10

6. Schleifendurchlauf:

summe = 10
i = 5

summe += i --> summe = 10 + 5 = 15

7. Schleifendurchlauf:

summe = 15
i = 6

summe += i --> summe = 15 + 6 = 21

8. Schleifendurchlauf:


summe = 21
i = 7

summe += i --> summe = 21 + 7 = 28

9. Schleifendurchlauf:


summe = 28
i = 8

summe += i --> summe = 28 + 8 = 36

10. Schleifendurchlauf:

summe = 36
i = 9

summe += i --> summe = 36 + 9 = 45

11. Schleifendurchlauf:

summe = 45
i = 10

summe += i --> summe = 45 + 10 = 55

12. Schleifendurchlauf:

summe = 55
i = 11 --> Abbruch, da Schleifenbedingung sagt i < 11

Sprung aus der Schleife raus --> bleibt noch das
Java:
System.out.println(summe);
und wie gerade gezeigt... Tadaaaa: summe = 55!

Hoffe das hat weiter geholfen ;-)
 
Zuletzt bearbeitet:

Neue Themen


Oben