为什么+运算会自动转换成为int类型呢? 这样做JAVA怕出现什么情况呢?public class lxc { public static void main(String args[]) { short x = 5; x=(short)(11+x); System.out.println(x); } }
x = x + 11; //x+11被自动转成int型了,x是short, so it is wrong...-------- 正确
short x = 5; x+=11; System.out.println(x); 上面的代码对! 又应该怎样解释呢---------------+= 是赋值运算符,如果自动转换类型的话,怎么还会报错呢? 自动转换的话,想来有的恐怖
x += 11; //这句话并没有转换类型 我测试后发现 x 并没有转换成 int型 public class TestCast { public static void main(String[] args){ short x = 5; x += 3; short y ; y = x ; System.out.println("i" + i +"k" + k ); }} 上面这段代码可以看出 如果x被自动转型为int的话 那么当执行 y=x 时就会报错 会说 cannot convert from int to short 实验结果 ^_^
x+=11;
System.out.println(x);
上面的代码对! 又应该怎样解释呢
我是这样理解的:X+=11之后
输出的X的类型为int型的
我和你想的也是一样,但是x是short类型的呀,把一个int类型的值给short应该出错的呀!
他为什么又可以通过编译呢,怪^^^^^
这样做JAVA怕出现什么情况呢?public class lxc
{
public static void main(String args[])
{
short x = 5;
x=(short)(11+x);
System.out.println(x);
}
}
正确
x+=11;
System.out.println(x);
上面的代码对! 又应该怎样解释呢---------------+= 是赋值运算符,如果自动转换类型的话,怎么还会报错呢?
自动转换的话,想来有的恐怖
public class TestCast {
public static void main(String[] args){
short x = 5;
x += 3;
short y ;
y = x ;
System.out.println("i" + i +"k" + k );
}}
上面这段代码可以看出 如果x被自动转型为int的话 那么当执行 y=x 时就会报错
会说 cannot convert from int to short
实验结果 ^_^
TIJ里面已经讲过了,细看过书的话