本帖最后由 杨佳名 于 2014-12-12 16:18 编辑
为了这个黑马币...- /**
- * 第1题: 以下代码哪个是正确的?为什么?
- *
- * 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:正确。
- * 定义了一个byte类型的变量b,值为2。
- * 选项b:错误。
- * 分析:
- * 编译无法通过。在进行b+1操作时编译器会自动检测到byte类型与int类型,这时会自动向上转型,结果变成int类型。
- * 而试图将int类型数据赋值给byte类型必然会造成精度损失,所以编译失败。
- * 改正后的结果应该是: byte b = 1; b = (byte)(b + 1);
- * 选项c:正确。
- * 分析:
- * 与选项b不同,这里编译运行都正确相当于b+=1;b=b;(引自沙发)
- * 选项d:正确。
- * 分析:
- * 将选项中的语句拆分为: byte b = 1; ++b; b=b;
- * 而 ++b; 等效于 b += 1;
- * 通过分析c,原因也就自然清楚了。
- *
- *
- * @author 杨佳名
- *
- */
复制代码 |