OFDb

Java Programmierung

Begonnen von Mr Orange, 10 November 2010, 14:26:53

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Mr Orange

10 November 2010, 14:26:53 Letzte Bearbeitung: 10 November 2010, 14:29:35 von Mr Orange
Hallo,

ich muss gerade das programmieren mit Java lernen und komme auch Schritt für Schritt voran, aber bei einer Beispielaufgabe verstehe ich einen Teil nicht:

Aufgabenstellung:
   Ermittlung des Kontostandes am Ende der Zinsperiode bei gegebenem
   Zinssatz und Anfangskapital
   Unterschiedliche Soll- und Habenzinssätze sind zu berücksichtigen.

   Die Ermittlung ist für mehrere Konten vorzunehmen, wobei jedes Mal
   Soll- und Habenzinssatz neu einzugeben sind. Variante: while-Schleife

...

System.out.println();
System.out.printf("Konto:              %10s%nKontostand am Ende: %10.2f%n%n",      kontobezeichnung, k1);

was bedeutet %10s%n und hinter Kontostand dann %10.2f%?

Wäre nett, wenn mir jemand helfen könnte.
"Du, du, du...du bist ein Huhn!!!"

Fräulein millas Gespür für den Flush

Zitat von: Mr Orange am 10 November 2010, 14:26:53
System.out.println();
System.out.printf("Konto:              %10s%nKontostand am Ende: %10.2f%n%n",      kontobezeichnung, k1);

was bedeutet %10s%n und hinter Kontostand dann %10.2f%?

Wäre nett, wenn mir jemand helfen könnte.
Ohne jetzt wirklich Java-Kenntnisse zu haben, würde ich aus dem Wissen um andere printf-Varianten sagen

%10s bedeutet, das die erste Variable "kontobezeichnung", auf 10 Stellen gekürzt wird. Sprich %s steht für einen String, die Zahl davor für die verwendeten Stellen.

Das %10.2f wird die Ausgabe einer Floatzahl beschreiben (in dem Fall die Variable k1), die vermutlich auf 10 Vor- und 2 Nachkommastellen formatiert wird.

Die Beschränkung auf eine Stellenanzahl wird normalerweise vorgenommen, damit alle Ausgaben gleich aussehen, d.h. ohne Vorzeichen ist es meist rechts- mit einem "-" davor meist linksbündig ausgegeben.

Nen Tipp ins Blaue für die "%n": Zeielenumbrüche.

"Ist denn die ganze Welt verrückt geworden? Bin ich denn hier der einzige Idiot, dem Regeln noch was bedeuten?"

Zitat von: Dr. Sigi Fraud
Ich habe den Rassismus endgültig besiegt.

Mr Orange

Ahhh! Das klingt auf jedenfall schlüssig. Wieder ein bißchen mehr Licht am Ende des Tunnels  ;).

Da du dich bei printf-Varianten auskennst, nochmal eine Frage:

Warum schreibe ich manchmal "System.out.printf("Kontoblabla")"

und manchmal nur "System.out.print("Noch ein..")"  :question:

Was hat das f für eine Bedeutung? In meiner Aufgabe:

System.out.println();
System.out.printf("Konto:..."  "Kontostand am Ende:...", kontobezeichning, k1);
      
System.out.print("Noch ein Konto (J/N)..."); antwort = getString().charAt(0);
System.out.println();

"Du, du, du...du bist ein Huhn!!!"

Travelling Matt

Tip ins Blaue von einem der auszog, Python zu lernen: handelt es sich bei printf vielleicht um eine Methode, die einen String erst noch formatiert, bevor sie ihn ausgibt?

Fräulein millas Gespür für den Flush

Nen print ist normalerweise für einfache Ausgaben ohne irgendwelche Variablen, in jedem Fall aber ohne irgendwelche Formatierungen.

Sobald man Variablen mit ausgibt, weiß man normalerweise nicht genau wie groß die werden. Damit das dann nachher nicht wie Kraut und Rüben aussieht, nimmt man printf, wo man halt jeder Variable ne feste Menge an Zeichen zubilligt. Macht aber auch erst Sinn, wenn man mehrere Zeilen ausgeben muß, da ja erst dann eine einheitlich Formatierung Vorteile bietet, aber die ist ja bei Dir aufgrund der while-Schleife eh gegeben.


Dementsprechend steht das f bei printf für formatted.
"Ist denn die ganze Welt verrückt geworden? Bin ich denn hier der einzige Idiot, dem Regeln noch was bedeuten?"

Zitat von: Dr. Sigi Fraud
Ich habe den Rassismus endgültig besiegt.

Mr Orange

Alles klar!

Ich übe dann mal weiter. Vielen Dank für die Antworten!
"Du, du, du...du bist ein Huhn!!!"

Dr. STRG+C+V n0NAMe

Um es mal klugscheisserisch zu beantworten.
Javadoc: http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#printf(java.util.Locale, java.lang.String, java.lang.Object...)
Formatierungen: http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

:icon_mrgreen:

Ansonsten haben die Herren recht.

Gruß

n0NAMe

P.S.: Wenn du Text einlesen willst, dann würde ich dir nen Scanner-Objekt ans Herz legen.
Aktueller Rang: Sergeant of the Master Sergeants Most Important Person of Extreme Sergeants to the Max
---
Carpenter Brut - Le Perv
---
Carpenter Brut - Obituary
---
Pertubator - Miami Disco

TinyPortal 2.0.0 © 2005-2020