黑马程序员技术交流社区

标题: 运算规则的问题 [打印本页]

作者: 客剑    时间: 2014-8-31 16:47
标题: 运算规则的问题
以下代码哪个是正确的?为什么?

a. byte b = 1 + 1;     
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;   
d. byte b = 1; b = ++b;
//是不是题目有错?编译一下,就b报错“损失精度”?其他都没问题,为什么??


作者: 花开彼岸天    时间: 2014-8-31 17:21
B 项没有转换   b是byte型  b+1是整型   C D隐藏了转化   b=b=(bate)(b+1)
作者: yingsun    时间: 2014-9-1 01:55
哈哈!这道题是基础测试的题吧,我也有这道,还以为是多选呢,来学习的,到底答案是什么啊?
作者: 隔夜修书    时间: 2014-9-1 08:48
在java运算中byte,short,char运算都会先把这些值转换为int型,然后对int型的数值运算,得到int型的结果。对于B选项b=b+1来说,首先将b转换为int型与1相加得到int型的2,再赋给b,由于b是byte型,接收int型的值就会报这个经典错误。
作者: yjiang_09    时间: 2014-9-1 08:58
不错,学习了
作者: 菜鸟一号    时间: 2014-9-1 09:34
这道题老毕说得很清楚了
作者: 她只是过客    时间: 2014-9-1 10:12
学习学习
作者: MR.Sun    时间: 2014-9-1 10:21
。你们基础测试是这种么?!为什么我的全是编程题。。。。。。。o(╯□╰)o。。。




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