A)byte b=1+1 正确:因为1+1是个编译时可以确定的常量,“+”运算在编译时就被执行了,而不是在程序执行的时候,这个语句的效果等同于s1=2,所以不会报错,可以运行。
B)byte b=1;b=b+1 错误:因为b=b+1的结果是int类型,不能赋值于byte类型的b。
C)byte b=1;b=b+=1 正确:因为“+=”首先会将右边的数值“1”强制转换成与左边数值相同的数据类型byte,再执行运算,并且结果与左边的数据类型相同,可以赋值给“b”,所以可以 运行。
D)byte b=1;b=++b 正确:因为自增运算符的运算结果的数据类型与被运算的变量的类型相同,所以可以赋值给b |