黑马程序员技术交流社区

标题: short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? [打印本页]

作者: 勿忘心酸    时间: 2015-4-20 22:18
标题: short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于 short s1 = 1; s1 = s1 + 1;由于s1+1运算时会自动提升表达式的类型,所以结果是int
型,再赋值给short类型 s1时,编译器将报告需要强制转换类型的错误。
对于 short s1 = 1; s1 += 1;由于  +=是java 语言规定的运算符,java编译器会对它进行特殊
处理,因此可以正确编译。
作者: 王善辉    时间: 2015-4-20 22:39
是的,就是这个样子的
作者: itheima_llt    时间: 2015-4-20 23:42
楼主辛苦了,非常感谢!
作者: 呢?    时间: 2015-4-20 23:43
学习了~
作者: 忘言    时间: 2015-4-20 23:59
看得出楼主也是来混分的~~
作者: 郝聚德    时间: 2015-4-21 00:01
s1与1相加的时候 就隐式提升为int类型 相加完了肯定得要强转啊
作者: 勿忘心酸    时间: 2015-4-22 19:42
顶一下,写的很详细啊
作者: redlake    时间: 2015-4-22 20:02
以前看过这个,有印象
作者: lclxjzz    时间: 2015-4-22 20:08
··自己都知道了·
作者: dengxing    时间: 2015-4-22 20:12
恩恩,这关系到了类型的提升
作者: 黄文昭    时间: 2015-4-22 22:34
正解!要是还有其他类型的转换总结来比较就好了!




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