Loading

扩展赋值运算符基本用法及注意事项

赋值运算符分类

  • 基本赋值运算符:=(支持连续赋值)

  • 扩展赋值运算符:+=,-=,*=,/=,%=


 

1 short s = 3;
2 s = s + 2;
3 s+=2;

上述代码第2行和第3行有什么区别?
第2行:变量s为short类型,2默认为int类型,两者相加后赋值给short类型的变量s时,会因为int类型不能自动转换为short类型而出现/编译错误,所以代码可以修改为:s = (short)(s + 2)后再运算。另外当变量参与运算时,java程序并不知道运算结束后该变量会不会超出当前变量类型的范围,所以会把变量转换为更大长度的数据类型

第3行:在使用扩展赋值运算符时,不会出现/编译错误,因为变量在参与运算时会自动强制转换为当前变量的类型

 

// 定义变量
int i = 1;

// 拿*=的左边变量和右边的数据做相乘运算,然后把结果赋值给左边的变量
i*=0.1;

// 注意:扩展的赋值运算符,隐含了强制类型转换
// 所以1*0.1强制转换为int类型导致舍弃小数部分,结果为:0
System.out.println(i);

// i进行自增运算,结果为:1
i++;
System.out.println(i);
posted @ 2020-07-09 23:53  Schieber  阅读(932)  评论(0编辑  收藏  举报