黑马程序员技术交流社区
标题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
[打印本页]
作者:
zhao543
时间:
2017-3-21 19:17
标题:
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编译器会对它进行特殊处理,因此可以正确编译。
作者:
冯达其
时间:
2017-3-21 20:38
一句话:易于损失精度;s1是short类型,s1+1自动转换成int的类型,赋值给short类型的s1
作者:
_西瓜
时间:
2017-3-23 20:47
第一个编译直接报错,第二个如果超出了short的取值范围就会损失精度
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2