Java 爪哇-为什么赢了';t字符'+';出现在控制台上?
我正在做一个简单的计算器,这是我的代码Java 爪哇-为什么赢了';t字符'+';出现在控制台上?,java,char,println,Java,Char,Println,我正在做一个简单的计算器,这是我的代码 public static void main(String[] args) { int x = 3; int y = 7; char w = '+'; System.out.println(x+w+y+"="+(x+y)); } 结果显示为“53=10”,我不明白为什么“+”不会出现,以及53来自哪里。当我在最后一行使用(w)而不是w时,会出现正确的结果“3+7=10”。此行为是由于表达式
public static void main(String[] args) {
int x = 3;
int y = 7;
char w = '+';
System.out.println(x+w+y+"="+(x+y));
}
结果显示为“53=10”,我不明白为什么“+”不会出现,以及53来自哪里。当我在最后一行使用(w)而不是w时,会出现正确的结果“3+7=10”。此行为是由于表达式
x + w + y
实际上被评估为
3+43+7
,为什么,您可能想知道?因为+
是一个字符,实际上是一个数字,43不是整数。字符在Java中可以隐式转换为整数<代码>x+w+y
添加它们的值。字符'+'
的整数值恰好是43,因此得到3+43+7(=53)
将w
放在括号中不会改变这一点,与您所说的相反
要解决此问题,请将w
设置为字符串
:
String w = "+";
相关:第一个关键点是
+
是左关联的,因此x+w+y+“=”+(x+y)
相当于(((x+w)+y)+“=”+(x+y))
;第二个关键点是,如果任一操作数是字符串,则+
为字符串串联,否则为数字加法<因此,code>x+w
使用数字加法进行计算(字符char
不是字符串String
),因此它是3+43=46
。然后使用数字加法计算46+y
,得出53
。然后,53+“=”
是第一个使用字符串连接来计算的子表达式,因为“=”
是一个字符串。哇,谢谢你这样的评论!真的帮了我很多。非常感谢你!从来都不知道char可以是一个数字!