public class test { //觉得可能是因为*和/运算的时候直接内
//部转换成int了,所以没有办法计算。
//但是换成+就没有这个问题
public test() {
}
public static void main(String[] args)
{
byte a=1;
int i;
for(i=0;i <=8;i++)
{
a += a; //因为a*2 = a + a,这样就没有问题了
System.out.println( "The output is "+a);
}
}
}
1、
byte(+-*/)之后都转换成int型.你的A变量是byte型.需强制转换
2、
a=a+b (有自动类型提升)
a+=b (无自动类型提升)
a++(无自动类型提升)
3、
算出a*2的结果是int型的 把int型赋给byte型当然是错的了