我是java的新手,我遇到了问题。
int a = 4;
int b = 8;
int c = a + b;
System.out.println("Number: " + c + b);
当我写这篇文章时,控制台说:
号:128
为什么数字不是16?
答案 0 :(得分:0)
因为"Number: "
是一个字符串,所以加号将整数附加到字符串的末尾。
你想要的是System.out.println("Number: " + (c + b));
额外的括号告诉Java在将数字加法添加到字符串之前先计算数字加法。
答案 1 :(得分:0)
结果是
"Number:" "12" "8"
变量c
为12
,b
为8
。
首先将c
转换为字符串并附加,然后将b
转换为字符串并附加。
答案 2 :(得分:0)
+
运算符是左关联的 - 您从字符串"Number: "
开始,然后计算+ c
,它只会将c
转换为字符串并附加它(导致"Number: 12"
),然后与b
相同,追加另一个"8"
,结果为"Number: 128"
。
如果您想首先评估c+b
,int
s,则应使用括号括起该计算:
System.out.println("Number: " + (c + b));
答案 3 :(得分:0)
因为它正在进行字符串连接而不是算术计算。因此,c 12的值和b 8的值彼此相邻打印。