赋值运算符
基本的赋值运算符:
“=”
将 = 号右边的数据赋值给左边的某个类型的变量
注意事项:千万不能将"=“写成”=="
扩展的赋值运算符:
“+=”,"-=","*=", “/=”, “%=”
+=:将=号右边的值和左边的变量值相加,然后在将结果赋值给左边的变量 其他的都同理就不举例了;
代码实现:
class Operator{
public static void main(String[] args){
//定义一个变量
int a = 10; //把10 赋值给int类型的变量a
//定义x,y两个变量
int x = 20;
int y = 20;
System.out.println("x:"+x);
System.out.println("y:"+y);
//定义一个boolean类型的数据
boolean flag = (a==y);
System.out.println(flag); //结果为false
//扩展运算符"+="
int m = 20;
m += a; //个人理解,类似于m = m+a;只是类似不是一样
System.out.println("m:"+m); //结果为30
}
}
下面出一道思考题:
/*
思考题:
short s =1, s= s+1;
short s=1 , s += 1;
上面两个代码有没有问题,如果有,哪里有问题?
下面代码实现:
*/
class Operator{
public static void main(String[] args){
//定义short变量
short s = 1;
//这个是错误的,不兼容类型从int转换到short可能会损失精度
//解析:这里存在一个默认类型提升--->byte,short,char,在参与运算的时候默认提升为int类型
//s+1的结果是int类型,使用short类型的变量接收int;类型的值是不行的
//要解决问题只能强制类型转换 s = (short) (s+1) ;
//s = s + 1;
s = (short) (s+1) ;
//输出变量s
System.out.println("s:"+s);
System.out.println("---------------------------------");
//变量s
short s=1;
//这个里面存在一个强制类型转换
s += 1; //等价于 s = (short)(s+1) ;
System.out.println("s:"+s); //结果为2
}
}