黑马程序员技术交流社区

标题: short s=1;s=s+1;与short s=1;s+=1;的区别是什么? [打印本页]

作者: happyto1021    时间: 2014-9-12 16:27
标题: short s=1;s=s+1;与short s=1;s+=1;的区别是什么?
求指导,搞的有点迷糊了
作者: happyto1021    时间: 2014-9-12 16:28
,大婶呢,,,
作者: dark_horse_xu    时间: 2014-9-12 21:47
看不到问题
作者: 舍我其谁    时间: 2014-9-12 23:13
s=s+1 会自动提升为int 类型   s+=1  则不会
作者: clh    时间: 2014-9-12 23:19
s=s+1 会自动提升为int 类型   s+=1  也会,但是最后赋值的时候做了强转,使他转变成了short类型,
作者: MeryStyle    时间: 2014-9-12 23:36
楼上正解!
作者: Mr_Unhappy    时间: 2014-9-12 23:40
这是一个类型转化的问题s=s+1的时候java会自动把s+1的值转化为int类型,所以次数便会出现类型转化错误,而s+=1就相当于s=(short)s+1,所以能正常运行,另外类型转化规则byte>short>int>long>float>double
作者: pvting    时间: 2014-9-12 23:46
short s=1;s+=1等价于与short s=1;s=(short)(s+1)
作者: pvting    时间: 2014-9-13 00:00
short s=1;s=s+1;是编译不过的因为类型自动提示为int
short s=1;s+=1等价于与short s=1;s=(short)(s+1);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2