赋值运算符
基本语法
- 符号:=
- 当"=" 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
- 支持连续赋值
- +=、-=、*=、/=、%=操作,不会改变变量本身的数据类型
- 扩展赋值运算符:+=、-=、*=、/=、%=
赋值运算符 | 符号解释 |
---|---|
+= | 将符号左边的值和右边的值进行相加操作,最后将结果赋值给左边的变量 |
-= | 将符号左边的值和右边的值进行相减操作,最后将结果赋值给左边的变量 |
*= | 将符号左边的值和右边的值进行相乘操作,最后将结果赋值给左边的变量 |
/= | 将符号左边的值和右边的值进行相除操作,最后将结果赋值给左边的变量 |
%= | 将符号左边的值和右边的值进行取余操作,最后将结果赋值给左边的变量 |
// 操作方式1:
int a1 = 10;
int b1 = 10;
// 操作方式2:连续赋值
int a2;
int b2;
// 或合并: int a2,b2;
a2 = b2 = 10;
System.out.println(a2 + "," + b2);
// 输出结果都为10
// 操作方式3:
// int a3 = 10;
// int b3 = 20;
int a3 = 10,b3 = 20;
System.out.println(a3 + "," + b3);
// 说明 += 的使用
int m1 = 10;
m1 += 5; // 类似于m1 = m1 + 5;
System.out.println(m1);
//-=、*=、%=、/= 类似
byte by1 = 10;
by1 += 5; //by1 = by1 + 5操作会编译报错。应该写为: by1 = (byte)(by1 + 5);
System.out.println(by1);
int m2 = 1;
m2 *= 0.1;
// m2 = (int)(m2 * 0.1) 相当于 (int)m2 * (int)0.1 int截断
System.out.println(m2);
// 输出结果为0
练习:
// 练习1:如何实现变量的值增加2
// 方式1:
int n1 = 10;
n1 = n1 + 2;
// 方式2(推荐这种方式写):
int n2 = 10;
n2 += 2;
// 练习2:如何实现变量的值增加1
// 方式1:
int i1 = 10;
i1 = i1 + 1;
// 方式2:
int i2 = 10;
i2 += 1;
// 方式3:
int i3 = 10;
i3++; // 或 ++i3;
// 练习3:
int n = 10;
n += (n++) + (++n);
// n = n + (n++) + (++n)
System.out.println(n);
// 输出的结果为:32
// 练习4:
int m = 2;
int n = 3;
n *= m++; // n = n * m++;
System.out.println("m=" + m);
// 输出结果为:3
System.out.println("n=" + n);
// 输出结果为:6
// 注意:以下代码是错误的
int n3 = 10;
n3++++;