目录
2.赋值运算符
(学完赋值运算符之后要求自己进行赋值运算符的赋值运算)
2.1赋值运算符
注意:扩展的赋值运算符隐含了强制类型转换
除了第一个=(赋值运算符)以外,下面五个都是扩展运算符。
案例演示:
/*
赋值运算符
*/
public class OperatorDemo4 {
public static void main(String[] args) {
/*
把十赋值给int类型变量i,但是我们一边从左往右念:
int i 等于 10
*/
int i = 10;
//输出变量i
System.out.println("i:" + i);//10
//扩展运算符
//i += 20;
System.out.println("i:" + i);
/*此处i等于30,因为+=是把右边和左边的i相加的结果再赋值给i
所以+=是做右边的值和左边的值相加的结果再赋值给i
也就是i = i + 20;
*/
//演示i = i + 20,需要把上面的i += 20;注释掉,否则下面的i得到的是上面i的值30再加上20
int i = i + 20;
System.out.println("i:" + i);
/*由此可见i += 20是等价的,但是又不完全等价,哪里不一样呢?
由下所述,扩展运算符底层隐含了强制转换类型
*/
short s = 10;
s += 20;
/*上述这样是没有问题的,但是如果写成s = s + 20就会报错因为s是shor类型,20是默认int类
型。字符串的加操作中,会有个表达式自动提升,short在进行+操作的时候会自动提升到int类型如果强制执
行,会报错:int转换到short可能会有损失。我们只需要把这个表达式整体强制转换到short类型就不会报错
了:s = (short)(s +20);但是我们不建议这样写,能用上面的s += 20;这种写法就用这种*/
System.out.println("s:" + s);
}
}
自我延申:
public class OperatorDemo5 {
public static void main(String[] args) {
//给变量赋值
int a = 10;
int b = 10;
int c = 10;
double d = 10.0;
int e = 10;
//+=扩展运算符演示
int a += 20;
System.out.println("a:" + a);//30
//-=扩展运算符演示
int b -= 20;
System.out.println("b:" + b);//-10
//*=扩展运算符演示
int c *= 20;
System.out.println("c:" + c);//200
// /=扩展运算符演示
d /= 20.0;
System.out.println("d:" + d);//0.5
//%=扩展运算符演示
int e %= 20;
System.out.println("e:" + e);//20
}
}