用一个题目来分析
下面程序哪个语句是正确的?
A. byte a=0,b=3; byte c =a+b;
B. short s =23; s=s+12;
C. short s=23; s+=12;
D. float f = 23+23.23;
答案:c
分析:
A选项:两个byte相加会自动提升为int类型,原因是精度小于int的类型相加时都会自动提升为int类型。而c 为byte 需要向下强转 正确的写法为
byte c =(byte) (a+b);
B选项:同A,short 加 int 会提升为int类型,而s 为short 类型,向下转型需要强转
short s = 23;
s= (short)(s+12)
C选项:+=的意思是 两个值相加 并将这个结果转为 前面这个变量的类型,s+=12表示最终转为short类,所以正确。
D选项:同A,B.