黑马程序员技术交流社区

标题: 请教一个问题,请帮忙解答,谢谢! [打印本页]

作者: 肖银    时间: 2013-12-22 22:26
标题: 请教一个问题,请帮忙解答,谢谢!
本帖最后由 肖银 于 2013-12-25 22:25 编辑

新手请教,以下四个语句,为什么第四个是错误的.


byte b = 1 + 1;  //对:
byte b = 1; b = ++b; //对:
byte b = 1; b = b += 1;  //对:
byte b = 1; b = b + 1; //错误
  


作者: 于磊    时间: 2013-12-22 22:33
byte b+=1  的时候你定义了b(其实是在使用之前已经做了强制转换)是一个byte型变量,可以正常运算
而byte b=b+1  当运算b+1的时候,发现b没有被定义,所以出现了两种数据类型不一。精度高的转精度低的,会发生丢失精度。
作者: 776699    时间: 2013-12-23 00:35
b=b+1;结果默认为int类型, 转化后损失精确度,需要强制转化才能编译通过。




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