Hallo alle zusammen. Ich bin Java Anfänger und habe mich jetzt durch einige Aufgaben mal durchgearbeitet. Jetzt habe ich eine Aufgabe wo ich eine lineare Abschreibung darstellen soll.
Hab soweit auch schon echt viel geschafft, bin aber jetzt auf das Problem gestoßen das mir beim kompilieren folgender Fehler gezeigt wird:
Bin mit der For-Schleife ran gegangen weil ich mir dachte das so das Programm einfach durchlaufen könnte und mir somit alles ausgibt was ich halt haben möchte.
hier mal meine komplette Datei dazu!
Hoffe ihr habt ne Idee woran es liegt!!!
Java:
importjava.io.*;class abschreibung
{publicstaticvoid main (String[] args)throwsIOException{BufferedReader stdin =newBufferedReader(newInputStreamReader(System.in));String input;double bezeichnung;System.out.println("Was haben Sie angeschafft?");{BufferedReader ein =newBufferedReader(newInputStreamReader(System.in));String s = ein.readLine();double wert;System.out.println("Wieviel hat es gekostet?");
input = stdin.readLine();
wert =Integer.parseInt( input );double afadauer;System.out.println("Wie lange ist die Nutzungsdauer");
input = stdin.readLine();
afadauer =Integer.parseInt(input);while(afadauer >20){System.out.println("Fehler. Bitte Ueberpruefen Sie Ihre Eingabe!");System.out.println("");System.out.println("Wie lange ist die Nutzungsdauer");
input = stdin.readLine();
afadauer =Integer.parseInt(input);}System.out.println("");System.out.println("Abschreibungsverlauf:"+ s);System.out.println("--------------------------------------------");double abbetrag;double x;double[] restbuchwert =newdouble[20];for(x =0; x <=20; x++){
abbetrag = wert / afadauer;
restbuchwert = wert-abbetrag;System.out.println(x +". Jahr: Abschreibungsbetrag "+ abbetrag +" EUR; Restbuchwert "+ restbuchwert +" EUR");}}}}
{ } beschränkt die Sichtbarkeit (den Scope) der darin definierten Variablen
Variablen kann direkt bei der Deklaration ein Wert zugewiesen weren (Initialisierung)
Variablennamen sollten nach Konvention in lowerCamelCase sein
Neben der while- gibt es die do-while-Schleife
println() kann auch ohne Argument/Parameter aufgerufen werden
Als Typ einer (Schleifen)-Zählvariable sollte Ganzzahl (meistens int) gewählt werden (mit Bezeichnung i, j, k usw.)
Geldbeträge immer in Ganzzahl speichern, damit keine Rundungsfehler auftreten
Hier noch mal überarbeitet:
Java:
publicstaticvoidmain(String[] args)throwsIOException{BufferedReader input =newBufferedReader(newInputStreamReader(System.in));System.out.println("Was haben Sie angeschafft?");String bezeichnung = input.readLine();System.out.println("Wieviel hat es gekostet?");double wert =Integer.parseInt(input.readLine());System.out.println("Wie lange ist die Nutzungsdauer");double afadauer =Integer.parseInt(input.readLine());while(afadauer >20){System.out.println("Fehler. Bitte Ueberpruefen Sie Ihre Eingabe!");System.out.println("");System.out.println("Wie lange ist die Nutzungsdauer");
afadauer =Integer.parseInt(input.readLine());}System.out.println("");System.out.println("Abschreibungsverlauf:"+ bezeichnung);System.out.println("--------------------------------------------");finaldouble abbetrag = wert / afadauer;double restbuchwert = wert;for(int i =0; i <20; i++){// oder restbuchwert > 0System.out.println(i +1+". Jahr: Abschreibungsbetrag "+ abbetrag
+" EUR; Restbuchwert "+(restbuchwert -= abbetrag)+" EUR");}}