OperatorTest04.java
/*
赋值运算符:
1、赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”:基本的、扩展的。
2、基本赋值运算符
=
3、扩展赋值运算符
+=
-=
*=
/=
%=
注意:扩展赋值运算符在编写的时候,两个符号之间不能有空格。
4、重要语法机制:
使用扩展运算符时,永远不改变运算结果类型。
*/
public class OperatorTest04{
public static void main(String[] args){
// 赋值运算符“=”右边优先级比较高,先执行右边的表达式
// 然后将表达式执行结束的结果放到左边的“盒子”中。(赋值)
int i = 10;
i = 20;
// 以 += 运算符作为代表,学习赋值运算符。其他运算符原理相似。
int k = 10;
k += 20;// k变量追加20
System.out.println(k);
// i += 10 和 i = i + 10 完全一样吗?
// 不一样,只能说相似,其实本质上并不是完全相同。
byte x = 100;
System.out.println(x);
// 编译报错:不兼容类型:从int转换到byte可能会有损失
// 编译器检测到 x + 1 是int类型,int类型不可以直接赋值给byte类型的变量。
// x = x + 1;
// 使用扩展运算符可以吗?
// 可以的,所以得出结论: x += 1 和 x = x + 1 不一样。
x += 1; // 其实 x += 1 等同于 x = (byte)(x + 1);
System.out.println(x);
int y = 100;
y += 100;
System.out.println(y); // 200
y -= 100;
System.out.println(y); // 100
y *= 10;
System.out.println(y); // 1000
y /= 10;
System.out.println(y); // 100
y %= 30;
System.out.println(y); // 10
}
}