正在看书本,碰到一些小问题,但是让人迷糊。short x=97;
short y=2;
x=x+y; 这行为什么就错误呢?说是等号右边的数值为int型,而等号左边是short型,从而引起错误。但是 x和y 都是short类型的,x+y怎么就变成int类型的了呢?
short y=2;
x=x+y; 这行为什么就错误呢?说是等号右边的数值为int型,而等号左边是short型,从而引起错误。但是 x和y 都是short类型的,x+y怎么就变成int类型的了呢?
解决方案 »
- java 导入包中的所有类
- scjp
- 菜鸟问题,在线等!
- 用js来实现动态组合一道选择题,选择题的其他3个错误答案可以从js数组(大于3条)中读取,正确的从其他地方接收的值,怎么来实现
- 高手门,帮帮我???
- 各位大哥,救救小弟,给小弟我一点信心吧!我真的快要失去学习JAVA的信心了!
- 又有问题了,我把文件添加进包,运行时就会有问题~ 马上揭贴,麻烦各位了~
- 1.一个对象可不可以改变 2.System.out.println( )的print 基本数据类型(int)问题 请高手从JVM内存分配的角度来解释
- 寻求java.util.random详细解释
- 这段代码的疑问
- JNI的findclass找不到类
- Swing弄成Windows风格的啊?
先要将两个操作数转换为同一种类型,然后再进行计算
* 如果其中有一个为double类型,另一个转为double.
* 否则,如果其中一个为float,另一个转为float.
* 否则,如果其中一个为long,另一个转为long.
* 否则,两个操作数都转为int.
当要将x+y赋值给short类型的x时,要加上强制转换如 x=(short)(x+y)
public class Test6 { /**
* @param args
*/
public static void main(String[] args) {
short a = 8;
a = a+8; //错误 也改改成a = (short)a+8;
a+=8; //正确 }}