第七题
问:关于下面的程序,哪个选项的说法是正确的?
public class Qus7 {
public static void main(String[] args) {
byte b=2,e=3;//---1
byte f=b+e;//----2
System.out.println(f);
}
}
A,编译通过,运行时打印出 5
B,编译通过,运行时打印出 23
C,编译不通过,在//2 处有错误,因为此处 f必须是一个 int 类型的
变量
D,编译不通过,在//1 处有错误,不能这样定义变量
解析:Java 中涉及 byte、short 和 char 类型的运算操作首先会把这些值转换为 int类型,然后对 int 类型值进行运算最后得到 int 类型的结果.因此,如果把两个 byte 类型的值相加,最后会得到一个int 类型的结果如果需要得到 byte 类型结果,必须将这个 int类型的结果显式转换为 byte类型。
错误的写法:
正确的写法:
第八题
以下程序错误的是:
A,short s=1;s=s+1;
B,short s=1;s+=1;
解析:s+1为int,不能直接赋值给 short。
编译器错误时候的提示:
正确的写法: