println - Klammern von Operationen

Status
Nicht offen für weitere Antworten.

Kycek

Neues Mitglied
Hallo zusammen,

ich versuche mich gerade ein bisschen in Java.
Hierbei bin ich über die Auswertungsreihenfolge der Operatoren gestoßen,
insbes. das + vor * ausgewertet wird.
Ok soweit kein Problem, schnell mal ausgetestet, stimmt.
"Wenn ichs richtig machen will, muss ich ja nur klammern.." - da kam das Problem.
Ich hatte den Ausdruck in println geschrieben, das Ergebnis war immernoch falsch.
Als separate Variable hingegen ist's richtig:

[Java]
public class Test {
public static void main(String[] args) {

// Richtig, ergibt 17
int a = 2 + (3*5);
System.out.println( "2+3*5 = "+ a );

// Falsch, ergibt 215
System.out.println( "2+3*5 = "+ 2+(3*5) );

}
}
[/Java]

Gibts da irgendeinen Trick mit dem man das auch innerhalb von println richtig hinbekommt,
oder funktioniert Klammern von mathematischen Ausdrücken
innerhalb von Funktionsargumenten generell nicht?

Vielen Dank schonmal,
Gruß :)

PS: Ich glaub das ist das erste mal das Google mir nicht hilft, die Suchbegriffe sind irgendwie blöd,
man bekommt nur die 1000+1 Erklärung zur Syntax von println. :autsch:
 

diggaa1984

Top Contributor
einfach nochmal (2+(3*5)) klammern .. dann gehts ..
der + operator innerhalb von println agiert in deinem Fall als String-Konkatenation, da du vorne nen String hast, somit wird intern die Methode println(String) verwendet .
Darum wird er dir die 2 als String umwandeln und ranhängen, erst danach berechnet er die 15 und hängt sie als String an den Bisherigen .. also 215

Wenn du nur println(2+(3*5)) machst .. dann gibt er auch 17 aus .. da er hier die Methode println(int) verwendet!

PrintStream-API
 
Zuletzt bearbeitet:

Landei

Top Contributor
Der +-Operator ist für String "überladen", d.h. wenn links schon ein String steht, wird auch rechts einer erwartet. Bei dir steht da 2, und die wird in "2" konvertiert. Wenn man das fertig gerechnet hat, steht dann ein 3*5. Da * stärker bindet als +, wird das erst einmal ausgerechnet. Dann wird wieder die 15 in ein String umgewandelt und angehängt.

Lange Rede, kurzer Sinn: Einfach den gesamten Ausdruck klammern, dann kann nichts schiefgehen:
Java:
  System.out.println( "2+3*5 = "+ (2 + 3*5) );
 

Leroy42

Top Contributor
Das Problem ist, daß Additionen von Strings und Zahlen immer zu Strings mit umgewandelten
Zahlen führen.
Also

System.out.println( "2+3*5 = "+ 2+(3*5) ):
liefert "2+3*5 = 215"
während
System.out.println( "2+3*5 = "+ (2+3*5) )
das korrekte liefert: "2+3*5 = 17"
 

Kycek

Neues Mitglied
Aww da hätte ich auch selbst draufkommen können, das mal zu versuchen,
vielen Dank für die guten, schnellen Antworten. :)

Leider kann man immernoch keine Bierchen übers Netz verschicken,
sonst würd' ich was sponsorn. ;)

Grüße

Edit: Ich pappnase hab auch das unäre + bzw - mit den binären Operatoren verwechselt sehe ich gerade, "Punkt vor Strich" gilt dann doch auch hier. Oh man. :eek:
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Compiler-Fehler kurze Frage (Fehler): runde Klammern im Println Java Basics - Anfänger-Themen 3
D System.out.println Java Basics - Anfänger-Themen 1
H Print und Println Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Warum werden meine System.out.println's übersprungen? Java Basics - Anfänger-Themen 9
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
T System.out.println() Java Basics - Anfänger-Themen 5
L Input/Output Println wird doppelt ausgeführt Java Basics - Anfänger-Themen 11
R Input/Output Frage zu System.out.println Java Basics - Anfänger-Themen 5
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
S Input/Output System.out.println - Manipulieren bzw. Alternative..? Java Basics - Anfänger-Themen 2
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
V OOP System.out.println(Objekt) Java Basics - Anfänger-Themen 3
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
W Erste Schritte Methode für println unnötig? Java Basics - Anfänger-Themen 6
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
V Erste Schritte println(); Java Basics - Anfänger-Themen 6
R ArrayList - System.out.println nur einmal, statt 10 mal Java Basics - Anfänger-Themen 5
C Postinkrement und println - Verständnisproblem Java Basics - Anfänger-Themen 8
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O Frage zu System.out.println() Java Basics - Anfänger-Themen 1
A System.out.println() - Aufbau Java Basics - Anfänger-Themen 1
S Unterschied print() und println() Java Basics - Anfänger-Themen 3
D kleines problem bei system.out.println schreibweise Java Basics - Anfänger-Themen 6
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
G classname.System.out.println(); ? Java Basics - Anfänger-Themen 2
O If in System.out.println Java Basics - Anfänger-Themen 11
lulas[]args Alternative zu System.err.println(); Java Basics - Anfänger-Themen 5
C System.out.println Java Basics - Anfänger-Themen 4
D println von excel $A$1 Java Basics - Anfänger-Themen 3
Binary.Coder Array über println ausgeben Java Basics - Anfänger-Themen 18
I Input/Output System.out.println formatierung? möglich? Java Basics - Anfänger-Themen 2
D Frage zu System.out.println() Funktion Java Basics - Anfänger-Themen 6
I Zuerst "System.out.println" Java Basics - Anfänger-Themen 3
K Problem bei Ausgabe mit println Java Basics - Anfänger-Themen 19
T Jar-Archive kein System.out.println()?? Java Basics - Anfänger-Themen 5
S Einfaches int Array gibt über System.out.println merkwürden Wert aus Java Basics - Anfänger-Themen 9
H toString / println Java Basics - Anfänger-Themen 2
K println schreibt nichts auf das Display Java Basics - Anfänger-Themen 3
K Methode System.out.println() Java Basics - Anfänger-Themen 4
S System.out.println gibt diesen Wert aus: Klasse@f102d3 Java Basics - Anfänger-Themen 3
N frage zu println() Java Basics - Anfänger-Themen 6
G Ist println eine Funktion? Java Basics - Anfänger-Themen 10
L Text zentrieren, println Java Basics - Anfänger-Themen 7
J System.out.println(. + (found ? "" : "k" Java Basics - Anfänger-Themen 8
G Tabulator in println Java Basics - Anfänger-Themen 2
C Wie funktioniert System.out.println intern? Java Basics - Anfänger-Themen 3
A System.out.println() lesen Java Basics - Anfänger-Themen 3
L System.out.println() Java Basics - Anfänger-Themen 4
S Schöne Tabelle mit println() anlegen Java Basics - Anfänger-Themen 3
L PrintWriter autoflush: println funktioniert, print nicht Java Basics - Anfänger-Themen 3
R System.out.println wird nicht angezeigt Java Basics - Anfänger-Themen 3
C System.out.println "abfangen"? Java Basics - Anfänger-Themen 8
G Out.println oder System.out.println Java Basics - Anfänger-Themen 25
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
T System.out.println - Compiler-Fehler Java Basics - Anfänger-Themen 22
C System.out.print oder println ? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Eckige Klammern werden nicht erkannt Java Basics - Anfänger-Themen 1
J Klammern werden fälschlicherweise eingelesen Java Basics - Anfänger-Themen 2
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
D Werte in eckige Klammern finden Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
F while Schleife ohne Klammern Java Basics - Anfänger-Themen 9
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
K Erste Schritte Geschweifte Klammern Java Basics - Anfänger-Themen 12
H Nur Zahlen, Klammern und Operatoren Java Basics - Anfänger-Themen 3
R alleinstehende geschweifte Klammern Java Basics - Anfänger-Themen 5
H Wohlgeformte Klammern Java Basics - Anfänger-Themen 26
M keine geschwungenen Klammern Java Basics - Anfänger-Themen 9
B Text zwischen geschweiften klammern Java Basics - Anfänger-Themen 11
B bestimmte klammern im string ersetzten Java Basics - Anfänger-Themen 17
B Klammern im String Java Basics - Anfänger-Themen 9
T Syntax für .split mit Klammern Java Basics - Anfänger-Themen 2
E Regex für geschweifte Klammern? Java Basics - Anfänger-Themen 10
StrikeTom Per regex string zwischen klammern raussuchen Java Basics - Anfänger-Themen 14
Luk10 Wo zum Teufel fehlen Hier Klammern? Java Basics - Anfänger-Themen 2
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
D Klammern in regulären Ausdrücken Java Basics - Anfänger-Themen 2
C Klammern einlesen!!! Falsche Ausgabe!!!! Java Basics - Anfänger-Themen 4
Developer_X Problem mit Klammern im Code Java Basics - Anfänger-Themen 17
Daniel_L Geschweifte Klammern nutzen oder nicht? Java Basics - Anfänger-Themen 3
M Wie ersetzt man einen String mit eckigen Klammern Java Basics - Anfänger-Themen 5
E Irgendwo fehlen Klammern ? Java Basics - Anfänger-Themen 6
B Was steht innerhalb von solchen <.> Klammern Java Basics - Anfänger-Themen 2
H Klammern bei replaceAll-Methode Java Basics - Anfänger-Themen 3
W Problem mit Programm (geschweifte Klammern setzen) Java Basics - Anfänger-Themen 11
E Klammern in einem String entfernen! Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
J Listen Operationen Java Basics - Anfänger-Themen 4
D Algorithmus in Pseudocode mit log2(n) Operationen erstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben