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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下代码正确的是?(多选)
a.  byte b = 1+1;
b. byte b=1;  b=b+1;
c. byte b=1; b+=1;
d. byte b=1; b=++b;

谁知道选哪个啊,能说出原因来吗?

4 个回复

倒序浏览
acd,A项赋值,没有问题
B项 类型转换异常,损失精度
C项 b+=1,+=是赋值运算符
D ++b,先运算在赋值,也没有问题。
回复 使用道具 举报
我也分不太清楚
回复 使用道具 举报
正确选项为C吧,其余的三个选项都有变量参与运算,其中会发生自动类型的提升,byte型提升为int型,在赋值给byte型,会造成精度丢失
回复 使用道具 举报
答案是ACD
A是自定义变量所以A是对的
B是一个byte类型的变量和int类型的数字相加,会自动类型提升为int类型
Cb+=1这种写法不会出现类型转换问题
D是先自加再赋值也没有问题,这个和C是差不多的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马