Wo liegt der Fehler?

Status
Nicht offen für weitere Antworten.

Zadar

Mitglied
Servus,

habe hier meinen Code, der müsste richtig sein, aber die Fehlermeldung lautet,dass ich in Zeile 6 einen Semikolon vergessen haben soll.

Könnt ihr drübeschauen bitte?

Code:
class Vorsorge{
	  public static void main (String[]args){
	  double geld=500.0;
	  double zins=0.05;
	  int t=2;
	  double Sparbetrag(500.0,0.05,2);
	  System.out.prinln("Sparbetrag: "+Sparbetrag);
	  }
	  public static double Sparbetrag(double geld,double zins,int t){
	  Sparbetrag(geld*Math.pow(1+i),t);
	  return Sparbetrag;
	  }
}
 
Code:
class Vorsorge{
     public static void main (String[]args){
     double geld=500.0;
     double zins=0.05;
     int t=2;
     double Sparbetrag =  Sparbetrag(500.0,0.05,2);
     System.out.prinln("Sparbetrag: "+Sparbetrag);
     }
     public static double Sparbetrag(double geld,double zins,int t){
     Sparbetrag(geld*Math.pow(1+i),t);
     return Sparbetrag;
     }
}

Du rufst in Zeile 6 eine Funktion auf, die einen Wert zurückliefert. Dann solltest du denn auch in einer Variable speichern.

Edit: Ja und die Funktion Sparbetrag klappt so nicht, siehe Post unter mir 😉
 
bei ganz schrägen Programmierstil kann der Compiler leider nur begrenzt hilfreiche Tipps geben und vermutet meist was ganz anderes,

bevor du bei deinen Unmengen an Fehlern ewig suchst, so gehts:
Code:
class Vorsorge{
     public static void main (String[]args){
        double geld=500.0;
        double zins=0.05;
        int t=2;
        double spar = Vorsorge.sparbetrag(geld,zins,t);
        System.out.prinln("Sparbetrag: "+spar);
     }

     public static double sparbetrag(double geld,double zins,int t){
        double ergebnis = geld*Math.pow(1+zins,t);
        return ergebnis;
     }
}
(ungetestet)
 
P.S.

Kann ich denn den Quellcode so schreiben, dass er mir den Betrag nicht für z.B. vordefinierte 2 Jahre ausgibt, sondern für allegemin t?
 
derzeit ist es doch

int t=2;
double spar = Vorsorge.sparbetrag(geld,zins,t);

bzw.

double spar = Vorsorge.sparbetrag(geld,zins,2);

wenn du da statt 2 eine andere Zahl nimmst, dann werden es auch mehr oder weniger Jahre,
noch dynamischer gehts doch gar nicht?
klar kannst du 2 wegnehmen und z.B. 40078 einsetzen

wenn du eine Benutzereingabe willst, dann müsstest du die erst noch bauen, geht aber auch
 
Du hast ein paar kleine Fehler drin.

Zunächst: Warum initialisierst du die Variablen geld, zins und t mit Werten, wenn du diese Variablen garnicht benutzt?

Diese Zeile kann auch nicht funktionieren, weil du keiner Variablen den Rückgabewert der Funktion zuweist.
Zadar hat gesagt.:
Code:
double Sparbetrag(500.0,0.05,2);

Richtig wäre es so:
Code:
double sparbetrag = Sparbetrag(geld, zins, t);

Diese Zeile hat einen Tippfehler:
Zadar hat gesagt.:
Code:
System.out.prinln("Sparbetrag: "+Sparbetrag);

so wäre es richtig:
Code:
System.out.println("Sparbetrag: " + sparbetrag);

Das hat auch ein paar Fehler:
Zadar hat gesagt.:
Code:
public static double Sparbetrag(double geld,double zins,int t){
	  Sparbetrag(geld*Math.pow(1+i),t);
	  return Sparbetrag;

Zum einen übergibst du die Parameter falsch an die Funktion pow() und der Aufruf von Sparbetrag ist auch seltsam. Mach es lieber so:
Code:
public static doube Sparbetrag(double geld, double zins, int t)
{
    geld = geld*Math.pow(1+zins, t);
     return geld;
}
Obwohl ich mir jetzt hier nicht ganz sicher bin, ob man so einen Sparbetrag berechnen kann.

EDIT: Da war ich wohl mal wieder was zu langsam ;-)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben