short i=1;
i =i+ 1;
这样就会类型转换的报错,
short i=1;
i += 1;
这样编译可以通过。怎么回事,希望知道的朋友说一下。谢谢了。

解决方案 »

  1.   

    +=是一个运算符
    i = i + 1; 
    +运算符与1 (int)运算的结果会被隐式转换为二者中表示范围相对更大的类型(这里int的表示范围比short大),此时赋值操作类型不匹配
    二者+=效率略高一点
    自加用i++或者 ++即可
      

  2.   

    short i = ( short )(i + 1);这样不会报错吧
    i += 1这样是在自身的基础上自加1所以不会报错
      

  3.   

    i = i+1;
    是先进行加的运算,然后赋值给i,而i和1类型不匹配,不能赋值所以报错。