2016-06-12 13 views
1

Ich bin neu bei Java und ich habe ein Problem.Ich bin neu bei ganzzahligen

int a = 4; 
    int b = 8; 
    int c = a + b; 

    System.out.println("Number: " + c + b); 

Wenn ich dies schreibe, Konsole sagt:

Nummer: 128

Warum nicht die Nummer 16?

Antwort

0

Da "Number: " eine Zeichenfolge ist, hängen die Pluszeichen die Ganzzahlen an das Ende der Zeichenfolge an.

Was Sie wollen, ist so etwas wie System.out.println("Number: " + (c + b));

Die zusätzliche Klammer Java sagen, zuerst die numerische zusätzlich zu berechnen, bevor es auf die Zeichenfolge hinzufügen.

0

Das Ergebnis ist

"Number:" "12" "8" 

Variablen c12 und b ist 8. Zunächst c in Zeichenfolge konvertiert und angehängt und danach wird b in Zeichenfolge konvertiert und angehängt.

0

Der + Operator Linksassoziativität - du mit dem String beginnen "Number: ", dann + c berechnen, die nur c in einen String umwandeln würde und fügen Sie es (was zu "Number: 12") und dann das gleiche mit b, ein anderer "8" Anhängen , resultierend in "Number: 128".

Wenn Sie c+b zuerst, wie int s zu bewerten, sollten Sie diese Berechnung mit Klammern umgeben: anstelle von arithmetischen Rechen

System.out.println("Number: " + (c + b)); 
0

Weil es String-Verkettung tut. Also werden der Wert von c 12 und der Wert von b 8 direkt nebeneinander gedruckt.

Verwandte Themen