送分了 判断 java 程序的正确性

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:37:26
public class TestShort{
public static void main(String[] args){
short i=1;
short j=1;
short sum;
sum=i+j;
}
}
上面那段代码又没错!如果错了请问错在哪里!看看大家的java功底
答对 送30分
想知道详细说明的hi 我 ,这上面写不下了!大家说的基本都有道理,但是没有从根本上分析!

错误原因:Type mismatch: cannot convert from int to short,就是类型不匹配,short类型的加减运算会转化为Integer运算。

修改方法:
1)把sum的类型改成int,如下
short i = 1;
short j = 1;
int sum;
sum = i + j;

2)对i+j运算强制类型转换,如下:
short i = 1;
short j = 1;
short sum;
sum = (short) (i + j);

public class TestShort{
public static void main(String[] args){
int x=1;
short i=(short)x;
/*short i=1; int为默认类型 就是把int类型赋值给short类型数据会丢失,要强制转换*/
short j=(short)x;
short sum;
sum=(short)(i+j); //2个short类型相加也可能会超出short类型范围
System.out.println(sum);// 输出结果
}
}

sum=i+j;//等号两边类型不匹配,不能从int转换为short类型

short类型的加减运算会转化为Integer运算,所以类型不匹配。

sum=(short)(i+j);//这样就可以了

一楼二楼说的都对