short s3;
        short s1=1;
short s2=2;
s3=s1+s2;
        System.out.println(s3);
结果是多少,为什么?

解决方案 »

  1.   

    cannot convert from int to short
    改成:s3=(short) (s1+s2)
    结果是3
      

  2.   

    编译出错s3=s1+s2;java做运算的时候如果操作数是byte,short,char,会自动转换成int
      

  3.   

    运算的时候,byte short int 都应该转换成int再进行运算
      

  4.   

    编译出做。因为java做运算的时候如果操作数是byte,short,char,会自动转换成int
    因为,s3是 short类型的,而s2  s1 在运算时转换成了int行进行运算,那么赋值给s3得时候,就会报错。
    应该修改成:int s3;
    或者:s3 = (short)(s1+s2);
      

  5.   

    ---------- java编译 ----------
    可能损失精度
    找到: int
    需要: short
            s3=s1+s2;
                 ^
    1 错误Output completed (0 sec consumed) - Normal Termination因为java做运算的时候如果操作数是byte,short,char,会自动转换成int
    因为,s3是 short类型的,而s2 s1 在运算时转换成了int行进行运算,那么赋值给s3得时候,就会报错
      

  6.   

    编译错误,需要转换一下数据类型 s3=(short)(s1+s2) s3=3;
      

  7.   

    改成s3=(short)(s1+s2)就应该没问题了,数据类型问题