A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 客剑 中级黑马   /  2014-8-31 16:47  /  1079 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下代码哪个是正确的?为什么?

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报错“损失精度”?其他都没问题,为什么??

点评

老生常谈的问题 http://bbs.itheima.com/thread-127149-1-1.html  发表于 2014-8-31 16:49

8 个回复

倒序浏览
B 项没有转换   b是byte型  b+1是整型   C D隐藏了转化   b=b=(bate)(b+1)
回复 使用道具 举报
哈哈!这道题是基础测试的题吧,我也有这道,还以为是多选呢,来学习的,到底答案是什么啊?
回复 使用道具 举报
在java运算中byte,short,char运算都会先把这些值转换为int型,然后对int型的数值运算,得到int型的结果。对于B选项b=b+1来说,首先将b转换为int型与1相加得到int型的2,再赋给b,由于b是byte型,接收int型的值就会报这个经典错误。
回复 使用道具 举报
不错,学习了
回复 使用道具 举报
这道题老毕说得很清楚了
回复 使用道具 举报
学习学习
回复 使用道具 举报
。你们基础测试是这种么?!为什么我的全是编程题。。。。。。。o(╯□╰)o。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马