JAVA里面,为什么short s1 = 1; s1 = s1 + 1;有错,而 short s1 = 1; s1 += 1;没错? 希望回答详细一点。
答案:1 悬赏:0 手机版
解决时间 2021-04-07 13:55
- 提问者网友:兔牙战士
- 2021-04-06 15:53
JAVA里面,为什么short s1 = 1; s1 = s1 + 1;有错,而 short s1 = 1; s1 += 1;没错? 希望回答详细一点。
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-04-06 16:42
因为byte、 short、 int 不会互相转换,它们三者在计算时会转换成 int 类型。 而“+”是算术运算符,有算术运算符,就是已经在运算了,所以结果会转成int 类型。 如果把 int 类型的结果赋给 byte、short类型的结果,必须加上强制声明。 所以, 上面的第一个语句块,错在用“+”这个算术运算符运算后,结果变成了 int 型, 然后重新把计算结果赋给 short 型的变量时,没有强制声明值为 short的型的,所以会出错。 应该更改为: short s1 = 1; s1 = (short)s1 + 1; 而第二个语句块,s1 += 1; 不会出错,因为“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成 int 类型的,所以没错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯