Parse

Status
Nicht offen für weitere Antworten.
U

Unregistriert

Gast
Hallo,

will ein Programm schreiben das die Jahre

int i = 0
i = i + 1
hochzählt und muss jedes jahr einen Zahlenwert über Int.parse eingeben und zwar jedes Jahr, nach Anzahl der Jahre.
kann man das automatisieren, das man einmal int.parse... eingibt und das Programm automatisch nach Anzahl der Jahren in der Kommandozeile eine Abfrage macht?
 

The_S

Top Contributor
Fränkisches Fragewort mit zwei Buchstaben: Hä?

Also ich versteh nur Bahnhof. Entweder neu erklären oder hoffen, dass es jemand anderes versteht.
 
S

SlaterB

Gast
es braucht ja nicht mehr als eine Schleife

wiederhole x und frage am Ende nach Abbruch
 
U

Unregistriert

Gast
Hier ist der Quelltext zu dem Program. Ich soll jedes Jahr einen Geldbetrag einbezahlen der sich mit dem zinsSatz verzinst. Das Program soll abfragen wieviel ich pro Jahr ein bezahle und dann den Betrag verzinsen. In diesem Fall fragt er logischer Weise einmal nach dem Betrag und verzinst den Betrag nach anzahl der jahre. Wie bringe ich das Program dazu jedes jahr nach dem Betrag zu fragen und zu dem aufgezinsten Vorjahres Betrag zu addieren.
Wenn ich eine Schleife mach dann müsste ich die Jahre ja schon vorher festlegen und für jedes Jahr eine Abfrage machen, oder?
Java:
class Zins 
{		

	public static void main(String[] args)
	{
		
		double zinsSatz = Double.parseDouble(args[0]);
		int jahre = Integer.parseInt(args[1]);
		double entgeld = Double.parseDouble(args[2]); 
		int i = 0;
		while (i <= jahre)
		{
			entgeld = entgeld * Math.pow(1+zinsSatz/100, i);	
			// Aufzinsungsformel , Exponent
																
				System.out.println("Nach " + i + "Jahren: " + entgeld);
				i = i + 1;
				
		}
		
		System.out.println("Endsumme: " + entgeld);
		
	}

}
 
Zuletzt bearbeitet von einem Moderator:

KrokoDiehl

Top Contributor
Du meinst du willst eine Benutzereingabe von der Konsole lesen? Das geht z.B. So:
Java:
System.out.print("Bitte geben Sie eine Zahl ein: ");

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String input = reader.readLine())

// input auswerten, z.B.
// int zahl = Integer.parseInt(input);
 
U

Unregistriert

Gast
ja genau das meinte ich. Aber da ich Anfänger bin weiß ich nicht so richtig wo ich das jetzt reinschreiben muss und der Kompiler mekert immer bei der Zeile

[String input = reader.readLine())]

das da was mit den Klammern nicht stimmt.
 

KrokoDiehl

Top Contributor
Das war ein Test ;)
Ein Copy&Paste-Fehler ... den sollte man eigentlich finden:
Java:
String input = reader.readLine())

Und da du den Benutzer für jedes Jahr nach seiner Zuzahlung fragen möchtest, bietet es sich an, ihn in der while-Schleife zu fragen. Jetzt ist nur noch die Frage: Willst du ihn zu Beginn oder am Ende des Jahres fragen? :)
 
U

Unregistriert

Gast
Hallo,

also ich möchte am Anfang des Jahres den Betrag "anlegen" und dann den Betrag + Zinsen ausgeben. Im nächsten Jahr den verzinsten Betrag von Jahr 0 + neuen Betrag von Jahr 1 verzinsen.
Hab das ganze dann wie folgt probiert, gibt aber in Zeile 16 den Fehler mit den Klammern aus.


Java:
class Zins 
{		

	public static void main(String[] args)
	{
		
		double zinsSatz = Double.parseDouble(args[0]);
		int jahre = Integer.parseInt(args[1]);
		double entgeld = Double.parseDouble(input);
		
		int i = 0;
		while (i <= jahre)
		{
			BufferedReader reader = new BufferedReader(new InputStreamreader(System.in));
				String input = reader.readLine()
			entgeld = entgeld * Math.pow(1+zinsSatz/100, i);					// Aufzinsungsformel , Exponent
								
				System.out.println("Nach " + i + "Jahren: " + entgeld);
				i = i + 1;
				
		
		}
		
		
		System.out.println("Endsumme: " + entgeld);
		
	}

}
 

KrokoDiehl

Top Contributor
Na da fehlt das Semicolon hinter dem
Code:
readLine()
!
Außerdem verarbeitest du die Eingabe von Benutzer (das was im String
Code:
input
steht) noch nicht.
 
U

Unregistriert

Gast
aber ich habe doch entgeld = input gleich gesetzt. er soll also den Inputwert in Zeile 16 verarbeiten.
Sorry aber ich kapiers immer noch nicht
 
S

SlaterB

Gast
Code-Reihenfolge ist wichtig,
wenn in Zeile 15 ein neuer String eingelesen wird,
wird nicht automatisch auch Zeile 9 nochmal ausgeführt..

also
entgeld = Double.parseDouble(input);
nochmal

mit 'Semicolon hinter dem readLine()' hat das aber nix zu tun, falls du noch da bist
 
U

Unregistriert

Gast
Also quasi so.
Aber bei der CMD zeigt er immer noch 2 fehler!

Java:
import java.io.*;
class Zins 
{       
 
    public static void main(String[] args)
    {
        
        double zinsSatz = Double.parseDouble(args[0]);
        int jahre = Integer.parseInt(args[1]);
        double entgeld = Double.parseDouble(input);
        int i = 0;
        
		while (i <= jahre)
        {
            BufferedReader reader = new BufferedReader(new InputStreamreader(System.in));
            
			String input = reader.readLine();    
            Double.parseDouble(input);
			entgeld = entgeld * Math.pow(1+zinsSatz/100, i);                    // Aufzinsungsformel , Exponent
                                
                System.out.println("Nach " + i + "Jahren: " + entgeld);
                i = i + 1;
                
        
        }
        
        
        System.out.println("Endsumme: " + entgeld);
        
    }
 
}
 
U

Unregistriert

Gast
ich wäre auch daran interessiert, haben dies z.Z. in der FH und keiner kommt wirklich mit
 
S

SlaterB

Gast
und die nennst du nicht, sondern soll jemand anders kompilieren und gleich korrigieren?
das wär ja zu leicht, selber ackern, wenigstens hierher abtippen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben