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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yinjiek 中级黑马   /  2013-7-24 19:33  /  1849 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yinjiek 于 2013-7-25 11:48 编辑

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;

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 赞一个!

查看全部评分

5 个回复

倒序浏览
这个论坛有,懒得答了,传送门自己看看看吧http://bbs.itheima.com/thread-60424-1-1.html
回复 使用道具 举报
啦啦啦,我是搬运工~~
a,c,d正确;
选项b中,b+1的结果默认转换为int型,int型不能直接转换为byte型,需强制转换。应改为:byte b=1;b=(byte)(b+1);
选项c中,b+=1包含了一个隐藏的类型转换,相当于 b=(byte)(b+1);
选项d中,b=++b也包含了一个隐藏的类型转换
回复 使用道具 举报
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;
其中a,c,d,是正确的,a不用说了计算然后赋值
                  b中b=b+1变量参与运算,自动提升数据类型为int,然后赋值给byte类型的bhui造成损失精度
                  c中b+=1相当于b=(byte)(b+1)强制转换数据类型
                  
回复 使用道具 举报
c不正确,b+=1包含了一个隐藏的类型转换,相当于 b=(byte)(b+1);
回复 使用道具 举报
b是错的,b+1的运行结果是int型,需要强制类型转换
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马