DDDB
Grünschnabel
Hallo zusammen!
Ich habe ein Problem mit einer Uebung, bei der ich mir mein Guthaben nach x Jahren auf meinem Tagesgedkonto ausrechnen und anzeigen lassen will.
Der Zinssatz ist nach Guthabengroesse gestaffelt. Da ich noch absoluter Anfaenger bin, stehen mir nur ziemlich wenige Befehle zur Verfuegung (Ich bin sicher, es gibt viel elegantere und kuerzere Loesungen ohne tausend Mal if und while und else, kenn ich aber noch nicht).
So wie ich es gemacht habe (s.u.) hoert der Loop aber niemals auf, ausserdem aendert sich das angezeigte Guthaben nicht. Wieso?
Bitte habt Nachsicht, bin ein absoluter Anfaenger (erste Woche), ich vermute schon, dass es ein absout bescheuerter Denkfehler ist, den ich aber einfach nicht entdecke.
Vielen Dank im Voraus!
package package4;
/* Konditionen:
* 0.01 bis 5000 EUR : 1,75% p.a.
* 5000,01 bis 50.000,00 EUR: 1 % p.a.
* ab 50.000, 01 0,5 % p.a.
* Formel: A = P [(1+R)hoch n]
*/
public class Tagesgeldkonto {
public static void main (String [] args)
{
double startkap = 10000; //hier das Startkapital eingeben
double zinssatz = 0.0175;
double zinssatz2 = 0.01;
double zinssatz3 = 0.005;
int jahreend = 50; //hier die Laufzeit eintragen
int jahre = 1;
double guthaben;
if (startkap <=5000)
do
{
guthaben= startkap * Math.pow(1+zinssatz,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben<=5000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz2,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>5000 & guthaben<=50000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>50000 & jahre<=jahreend);
if ((startkap>5000) & (startkap <=50000))
do
{
guthaben= startkap * Math.pow(1+zinssatz2,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>5000 & guthaben<=50000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>50000 & jahre<=jahreend);
if (startkap >50000)
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (jahre<=jahreend);
}
}
Ich habe ein Problem mit einer Uebung, bei der ich mir mein Guthaben nach x Jahren auf meinem Tagesgedkonto ausrechnen und anzeigen lassen will.
Der Zinssatz ist nach Guthabengroesse gestaffelt. Da ich noch absoluter Anfaenger bin, stehen mir nur ziemlich wenige Befehle zur Verfuegung (Ich bin sicher, es gibt viel elegantere und kuerzere Loesungen ohne tausend Mal if und while und else, kenn ich aber noch nicht).
So wie ich es gemacht habe (s.u.) hoert der Loop aber niemals auf, ausserdem aendert sich das angezeigte Guthaben nicht. Wieso?
Bitte habt Nachsicht, bin ein absoluter Anfaenger (erste Woche), ich vermute schon, dass es ein absout bescheuerter Denkfehler ist, den ich aber einfach nicht entdecke.
Vielen Dank im Voraus!
package package4;
/* Konditionen:
* 0.01 bis 5000 EUR : 1,75% p.a.
* 5000,01 bis 50.000,00 EUR: 1 % p.a.
* ab 50.000, 01 0,5 % p.a.
* Formel: A = P [(1+R)hoch n]
*/
public class Tagesgeldkonto {
public static void main (String [] args)
{
double startkap = 10000; //hier das Startkapital eingeben
double zinssatz = 0.0175;
double zinssatz2 = 0.01;
double zinssatz3 = 0.005;
int jahreend = 50; //hier die Laufzeit eintragen
int jahre = 1;
double guthaben;
if (startkap <=5000)
do
{
guthaben= startkap * Math.pow(1+zinssatz,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben<=5000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz2,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>5000 & guthaben<=50000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>50000 & jahre<=jahreend);
if ((startkap>5000) & (startkap <=50000))
do
{
guthaben= startkap * Math.pow(1+zinssatz2,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>5000 & guthaben<=50000 & jahre<=jahreend);
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (guthaben>50000 & jahre<=jahreend);
if (startkap >50000)
do
{
guthaben= startkap * Math.pow(1+zinssatz3,jahre);
System.out.println(guthaben);
jahre=jahre++;
}
while (jahre<=jahreend);
}
}