Ausgabeanweisungen mehrerer Operanden

Status
Nicht offen für weitere Antworten.

Angelika_25

Bekanntes Mitglied
Hallo, ich hätte da doch noch eine Frage. Ich habe diese Anweisung:
Code:
System.out.println(true + 3 + "Hilfe");

Warum kann ich das nicht schreiben, sondern muss es umändern in:
Code:
System.out.println(true + (3 + "Hilfe"));

Ausgegeben wird:
true3Hilfe


Liebe Grüße
 
S

SlaterB

Gast
Auswertungsreihenfolge:

System.out.println(true + (3 + "Hilfe"));
Klammern zuerst:
int + String = String, ok
boolean + String = String, ok
fertig


System.out.println(true + 3 + "Hilfe");
ohne Klammern von links nach rechts:
boolean + int = ??!!?!?sildjflsjdmf Systemcrash


System.out.println("" + true + 3 + "Hilfe");
geht wieder, hoffentlich hast du auch verstanden wieso
 

Angelika_25

Bekanntes Mitglied
Heißt das also, dass alles was mit String steht, zum String gewandelt wird, z.B. String + boolean, oder int + String....

Aber int + boolean funktioniert nicht, oder boolean + int...

Deswegen setzt man die Klammern, damit man weiß, was zusammengehört?


Liebe Grüße
 
S

SlaterB

Gast
genau, wobei
> damit man weiß, was zusammengehört
etwas schlauer klingt als es eigentlich ist,

denn eigentlich hat man ja keine Präferenz der Zusammengehörigkeit,
man hält sich nur an die nötigen Regeln, damit alles irgendwie zu einem String zusammenwächst,
 

Ebenius

Top Contributor
Daher auch die schöne Frage beim Sun-Java-Programmer-Test: Gibt es im Java überladene Operatoren (wenn ja: welche)?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben