For Schleife Zinsen

Dexnorv5

Mitglied
Hallo ich habe ein problem, es gibt hier viele Themen zu Zinsberechnung aber keines fasst mein Problem auf.

Ich bin soweit gekommen:

Java:
public class Zinsberechnung {
		public static void main(String[] args) {
		double Anfangskapital = 10000;
		double Zinssatz = 0.03;
		double Endbetrag = Anfangskapital;
		int Jahre = 5;
		for(int i=0; i<6; i++)
			Endbetrag = Endbetrag * (1 + Zinssatz);
		int i = Jahre;
		double b = i;
		System.out.println("Jahr: " + b + " -> " + Endbetrag);
		}
}

Er gibt dann nur für Jahr 5 die 11592 aus ich möchte aber, dass er für jedes Jahr die Werte ausgibt, ich denke, dass mein Fehler bei dem double b liegt aber ich weiss nicht wie ich das anders lösen kann.
Ich hoffe mir kann jemand helfen, danke schonmal im vorraus!!
 
Zuletzt bearbeitet von einem Moderator:
Zunächst möchte ich festhalten, dass ich natürlich geprüft habe, ob tatsächlich dieser Fehler nirgens beschrieben wurde.

Tatsächlich fand ich bei

https://www.google.de/search?q=For+Schleife+Zinsen+für+jedes+jahr+ausgeben

2,5 MILLIONEN (MILLLLLIOOONEN!!) Ergebnisse.

Die alle korrekte Implementierungen liefern, für die Anzeige der Zinsen pro jahr.

---

Überleg Dir mal: Wie werden Sachen auf der Konsole ausgegeben? Wann passiert das bei dir?
 
leider sind bei den Ergebnissen aber nur max. 10 in Java.
und ausgegeben wird das was in meiner printline steht, und da wollte ich wissen, wie es heißen müsste, damit ich alles dort stehen habe.
ich habe leider nicht so viel Ahnung von programmieren, das ist das Problem an der Sache
 
Jetzt habe ich es so weit:
[Java]
public class Zinsberechnung {
public static void main(String[] args) {
double Anfangskapital = 10000;
double Zinssatz = 0.03;
double Endbetrag = Anfangskapital;
int Laufzeit = 5;
int i = 0;
for(int i = 0; i<=Laufzeit; i++)
Endbetrag += Endbetrag * (1 + Zinssatz);
System.out.println("Wert nach " + Laufzeit +" Jahren: "+ Endbetrag + " Euro");
}
}
[/Java]

aber in der for schleife geht das i nicht, kann mir jemand erklären wieso?
 
Zuletzt bearbeitet:
Nutze Klammern bei jeder Forschleife. Falls du keine verwendest wird nur die Anweisung direkt danach in der Schleife ausgeführt.

Und: verwende nicht
Code:
Endbetrag += Endbetrag * (1 + Zinssatz);
... Entweder
Code:
Endbetrag = Endbetrag * (1 + Zinssatz);
oder
Code:
Endbetrag *=  1 + Zinssatz;

und deine schleife sollte entweder ab 1 beginnen oder bis i<laufzeit laufen.
 
Zuletzt bearbeitet:
Jetzt habe ich es so weit:
[Java]
public class Zinsberechnung {
public static void main(String[] args) {
double Anfangskapital = 10000;
double Zinssatz = 0.03;
double Endbetrag = Anfangskapital;
int Laufzeit = 5;
int i = 0;
for(int i = 0; i<=Laufzeit; i++)
Endbetrag += Endbetrag * (1 + Zinssatz);
System.out.println("Wert nach " + Laufzeit +" Jahren: "+ Endbetrag + " Euro");
}
}
[/Java]

aber in der for schleife geht das i nicht, kann mir jemand erklären wieso?

Dann setz alles, was du in der for-Schleife haben möchtest, in geschweifte Klammern:

Java:
for(int i = 0; i<=Laufzeit; i++){
     Endbetrag += Endbetrag * (1 + Zinssatz);
     System.out.println("Wert nach " + Laufzeit +" Jahren: "+ Endbetrag + " Euro");
}
Sonst wird in der Schleife lediglich die nächste Anweisung, also
Java:
Endbetrag += Endbetrag * (1 + Zinssatz);
berücksichtigt. Außerdem solltest du den Variable, die hochgezählt wird, also i
und nicht Laufzeit ausgeben.
 

Zurück
Oben