# Hilfe bei for-Schleife



## String User (5. Apr 2022)

Wir sollen eine lineare Abschreibung durch ein Java Programm berechnen lassen. Bin schon stundenlang am rumprobieren, komme aber auf kein gescheites Ergebnis.
Nach der Aufgabenstellung soll nur die Methode "public void abschreibungsplan_erstellen()" bearbeitet werden. Bin noch ziemlich neu in der ganzen Programmierwelt, deswegen bitte ich um Nachsicht mit mir. Danke im Vorraus für jegliche Hilfe.

Das sollte dann im Idealfall die Ausgabe sein:

Restwert Ende Jahr 1 | 25000.0

Restwert Ende Jahr 2 | 20000.0

Restwert Ende Jahr 3 | 15000.0

Restwert Ende Jahr 4 | 10000.0

Restwert Ende Jahr 5 | 5000.0

 Restwert Ende Jahr 6 | 0.0




public class Anlagegut
{
    private String inventarnr;
    private double akosten;
    private int ndauer;
    /**
     * Konstruktor für Objekte der Klasse Anlagegut
     */
    public Anlagegut(String p_nr, double p_kosten, int p_dauer)
    {
        // Instanzvariable initialisieren

        inventarnr = p_nr;
        akosten = p_kosten;
        ndauer = p_dauer;
    }

    public void abschreibungsplan_erstellen()
    {
        double restwert;
        double abbetrag;
        int i;
        abbetrag = p_kosten / p_dauer;
        restwert = p_kosten;


        for(double restwert ; restwert > 0; restwert - abbetrag){

            restwert = akosten - abbetrag;
            System.out.println("Restwert Ende Jahr" + i + "|" + restwert);
        }

    }


----------



## Staarfightaar (5. Apr 2022)

bearbeite / schreib neue nachricht wo du ddas symbol </> benutzt.. darin kannst du code posten


----------



## mihe7 (5. Apr 2022)

Code bitte immer in Code-Tags posten (im Editor oben links </> klicken), dann sieht das so aus:

```
public class Anlagegut
{
    private String inventarnr;
    private double akosten;
    private int ndauer;
    /**
    * Konstruktor für Objekte der Klasse Anlagegut
    */
    public Anlagegut(String p_nr, double p_kosten, int p_dauer)
    {
        // Instanzvariable initialisieren

        inventarnr = p_nr;
        akosten = p_kosten;
        ndauer = p_dauer;
    }

    public void abschreibungsplan_erstellen()
    {
        double restwert;
        double abbetrag;
        int i;
        abbetrag = p_kosten / p_dauer;
        restwert = p_kosten;


        for(double restwert ; restwert > 0; restwert - abbetrag){

            restwert = akosten - abbetrag;
            System.out.println("Restwert Ende Jahr" + i + "|" + restwert);
        }

    }
```
Das ist nicht nur leichter zu lesen, sondern wir können uns auch über Zeilennummern unterhalten. Zum Beispiel gibt es in den Zeilen 23 und 24 die Variable p_kosten nicht, denn p_kosten ist weder eine Variable, die zum Objekt gehört (Instanzvariable) noch ein Parameter der Methode abschreibungsplan_erstellen. Das könntest Du schon einmal korrigieren. Womit überlasse ich Dir.

In Zeile 27 (for-Statement) könntest Du doch einfach die Jahre der Nutzung zählen, die Nutzungsdauer ist ja bekannt. Probiers mal (noch ein Tipp: am Ende der Zeile 27 berechnest Du zwar was, verwendest das Ergebnis aber nicht, so dass Du Dir die Berechnung genauso gut sparen hättest können).

In Zeile 29 ziehst Du den abbetrag immer von den akosten ab. Weder das eine noch das andere wird irgendwo verändert, so dass Du an der Stelle immer das gleiche Ergebnis rausbekommst, das Du dem restwert zuweist.


----------



## String User (6. Apr 2022)

Vielen Dank für die Rückmeldungen ich schaue jetzt mal wie weit ich komme. Nächstes Mal poste ich auch den Code in der geforderten Form.

Lg


----------

