一道java基础题?求解。

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:30:51
short s=1;s += 1;会报什么错误,s = s + 1;又会报什么错误。

s+=1不会报错,而s=s+1会报Type mismatch: cannot convert from int to short不能把int型转换成shor,根据java数据类型的转换,只能是把小范围类型转换成在大范围类型.

short s=1;

s += 1;
这句没有错

s = s + 1;
可能损失精度
找到: int
需要: short
s = s + 1;
^
1 错误

java会自动将类型转换为int,这里应该:s = (short) (s + 1);

1、第一个表达式不会报错,是正确的!第二个表达式是错误的!
2、第二个错误的原因如下:
表达式中“1”是int型,表达式右边的“s”是short型,根据类型转换规则(精度低的提升为精度高的类型)表达式右边的结果为int型,但是表达式左边却是short型,类型不匹配,报错!
呵呵……
也不知道表达清楚了没有啊!

这两句话应该都有错~~ 因为S是short型的,s+=1;这里的1默认情况为int型的,一个short类型的不能与int 类型的相加.除非强制类型转换

java
会数据类型会自动提升 得数是大个的

对的呀,这有什么错?