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 = "+";