Java - 为什么 char '+' 不会出现在控制台上?
Java - why won't char '+' appear on the console?
我正在制作一个简单的计算器,这是我的代码。
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 不是整数值。
char
可隐式转换为 Java 中的整数。 x + w + y
添加他们的值。字符 '+'
的整数值刚好是 43,所以得到 3 + 43 + 7 (= 53).
将 w
放入括号中 不会 改变它,这与您所说的相反。
要解决此问题,请将 w
变成 String
:
String w = "+";
我正在制作一个简单的计算器,这是我的代码。
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 不是整数值。
char
可隐式转换为 Java 中的整数。 x + w + y
添加他们的值。字符 '+'
的整数值刚好是 43,所以得到 3 + 43 + 7 (= 53).
将 w
放入括号中 不会 改变它,这与您所说的相反。
要解决此问题,请将 w
变成 String
:
String w = "+";