死磕Java之分析short类型

看到一个题目:short s1=1;s1=s1+1;有错吗?short s1=1;s1 += 1;有错吗?

答:
对于short s1 = 1;s1=s1 + 1;由于1是int类型因此s1+1运算结果也是int类型,需要强制转换成short类型才能复制给shot类型。而short s1=1;s1 +=1;可以正确编译,因为s1 + =1;相当于 s1 = (short)(s1+1);其中有隐含的强制类型转换。

分析:
可以看出short s1 = 1是可以执行成功的
在这里插入图片描述
s1 = s1 + 1呢?
可以看出来,是不行的,因为s1是short类型的而1是int类型的。
在这里插入图片描述
可以这样子改:

 short s1 = 1;
 s1 = (short) (s1 + 1);

还可以写成:

 s1 += 1;

“s1 += 1” 就等于上面的“s1 = (short) (s1 + 1)”这个的用法。

发布了144 篇原创文章 · 获赞 154 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_17623363/article/details/104720904