请问在Java中,为什么char相加有时候输出字符,有时候输入ascill码?代码如图

图片说明

求解!

因为JAVA里面运算符 ( + )不能用于char类型 , 这时候要用到char类型上就会隐式的把char向上转型为int , char类型转成int的值就是该字符的ASCII码 , 所以char类型相加的结果是int型 ;
例如 int a = '1' + '2'; a的值就是字符'1'和字符'2'转成ASCII码相加得到的值 ;
如果用char a = '1' + '2'; 表示把得出的ASCII码值再转换为对应的字符 , 也就是字符'c' ;

字符1对应的ASCII码是49 字符2对应的ASCII码是50 那么字符1跟字符2相加的ASCII码就是99
那么如果是直接输出的内容里是字符相加,那么就是字符在相加的时候是先转为ASCII码后相加,然后得到对应的ASCII码。
也就是说这里的System.out.println(a+b)步骤就是→(49+50)就是要输出的结果
而System.out.println(c) 由于c本身就是一个字符,那么直接输出其对应的字符 刚好字符1跟2相加就是字符c