黑马程序员技术交流社区

标题: 数据类型自动转换问题??? [打印本页]

作者: 小星星2015    时间: 2015-5-28 23:40
标题: 数据类型自动转换问题???
以下代码正确的是?(多选)
a.  byte b = 1+1;
b. byte b=1;  b=b+1;
c. byte b=1; b+=1;
d. byte b=1; b=++b;

谁知道选哪个啊,能说出原因来吗?
作者: 黑马生涯    时间: 2015-5-28 23:54
acd,A项赋值,没有问题
B项 类型转换异常,损失精度
C项 b+=1,+=是赋值运算符
D ++b,先运算在赋值,也没有问题。
作者: 武汉小菜鸟    时间: 2015-5-29 00:08
我也分不太清楚

作者: 张清华    时间: 2015-5-29 00:27
正确选项为C吧,其余的三个选项都有变量参与运算,其中会发生自动类型的提升,byte型提升为int型,在赋值给byte型,会造成精度丢失
作者: bin2015    时间: 2015-5-29 09:21
答案是ACD
A是自定义变量所以A是对的
B是一个byte类型的变量和int类型的数字相加,会自动类型提升为int类型
Cb+=1这种写法不会出现类型转换问题
D是先自加再赋值也没有问题,这个和C是差不多的




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