Wenn das L oder das d|D unterbleibt

Dr Franke Ghostwriter
Wenn das L (oder das d|D) unterbleibt

Ein Mitstudent aus dem 01618er hatte eine Aufgabe bei der eine Variable "result" zunächst als long deklariert und dieser dann der Wert 1 zugewiesen wurde - ohne L dahinter
Code:
 [COLOR=Blue]result = 1;[/COLOR]
Gilt das in der Java-Welt als "unsauber", "schlechter Stil", "übliche Vereinfachung" oder führt das sogar irgendwie zu einem Fehler bei der Bewertung, wenn man in einer Aufgabe sowas weglässt? Dass es nicht zu einem Fehler im Programmablauf kommt, wurde logisch nachvollziehbar erklärt: wie in anderen Sprachen auch finde bei Java dort eine automatische Konvertierung statt. Das Ergebnis sei ohnehin vom Typ long.

In diesem Zusammenhang, von Seite 77: "Gleitkommazahlen sind vom Typ double, falls kein Buchstabe (d, D, f, F) am Ende des Literals angegeben ist".
Ist doch gleichbedeutend mit "...sind vom Typ double, falls kein Buchstabe f|F...".
Heisst: will ich nicht explizit eine Beschränkung auf float, kann ich auf das d|D auch verzichten; d|D ist also nur ein Stilmittel und wir können das handhaben, wie wir wollen?

Wäre ja schon bequemer, wenn die Vorgabe bei f und nicht bei d wäre... aber das wird Herr Oracle wohl nicht extra unseretwegen ändern.

Wenn das alles noch im Skript beantwortet wird, dann entschuldigt bitte. Habe gerade erst anfangen können und bin mal eben so am Anfang von KE 2 angekommen.
 
Zugegeben musste ich nie die Startwerte der Variablen vom Typ double oder long selbst festlegen. Jetzt hab ich mich mal eingelesen:

Ich denke es ist verzeihlich im obigen Code Beispiel das L wegzulassen, allerdings wissen andere Programmierer bei dieser Zuweisung dann eventuell nicht, dass die Variable jederzeit wieder einen long-Wert annehmen könnte. Im Sinne von nachvollziehbarer Programmierung würde ich es dran lassen.

Bei Fießkommazahlen ist das was anderes. Wenn man speichereffizient arbeiten will, sollte man unbedingt float angeben, wenn der Wertebereich ausreicht. Und dann muss anscheinend ein f angestellt werden, sonst erwartet der Compiler einen double und wirft ne Exception.
 
also ich würde die Buchstaben dann verwenden, wenn sie zwingend nötig sind. D.h. ich ein Literal verwenden will, dass nur im long-, nicht aber im int-Wertebereich enthalten ist, oder ich explizit einen float-Wert haben will. Dass der Code mit L lesbarer wird, würde ich nicht behaupten, denn wenn ich den Typ einer Variablen haben will, dann schau ich mir die Deklaration an, was gerade mit einer IDE gar kein großer Aufwand ist. Aber wenn man will, kann man das L sicherlich auch hinschreiben. Ich kenne keine Richtlinie, die da allgemein etwas vorschreibt, das wird dann ggf. eher im Projekt festgelegt.

Bzgl. der double vs. float Frage: Also solange ich nicht absolut laufzeit- oder speichereffizient arbeiten muss, würde ich immer ein double vorziehen, da die Genauigkeit eben um einiges besser ist als bei einem float. Sogesehen, ist es schon nicht verkehrt, die Standardliterale als double zu interpretieren.
Ein d|D ist also wirklich rein zu Verdeutlichung ein f|F wenn dann wirklich nötig.

Ich hoffe das klärt die Frage. Für den Kurs gilt, solange das Programm die richtigen Ergebnisse liefert, die richtigen Wertebereiche verwendet und übersetzbar ist, ist es egal wo ihr welche Buchstaben hinsetzt 🙂

Viele Grüße
Silvia
 
Oben