一、算数运算符+、-、*、/、%、++、--
//+-*/
//整除:参与运算的双方都是整数10/3=3 不是3.3333
//如果是10./3=3.333...这是由于10.是浮点数,则3会自动转换为大类型并计算,所以最终是
//10.0/3.0的计算结果。
//计算次序为先乘除后加减,如果优先级一致,则自动从左向右进行计算 10+2*5=20;
/ 除法分母不能为0,否则出错。
% 求余(取模) 10%3=1实际就是10除以3求余数(为1)
double k=10.12;
System.out.println(k%3);
结果为1.1199999999999992 应该返回值为1.12,由于浮点数不能精确存放,所以返回值是一个类似值
double d1=-10.12;
double res=d1%3;
System.out.println(res);
//输出值为-1.1199999999999992 求余计算中符号位不参与计算
double dd=12.45;
System.out.println(dd%3.1);//0.049999999999998934
//++和--是单目运算符
//i++等价于i=i+1,i--等价于i-=1
//以++为例写法有2个:i++或者++i
//++i是先对i加1,然后再获取i的值
int age=100;
System.out.println(++age);//输出101,先加1然后获取值
System.out.println(age);//输出101
二、关系运算符>、<、>=、<=、==、!=
用于判断两个数据之间的大小关系,计算结果为boolean,如果成立返回为true,否则为false
double d1=10;
System.out.println(d1>3); 返回true
==和=的区别:
k=100;//这是赋值运算符,意思是将=右边的计算结果储存在=左边的变量中
//k==100这是比较计算符,意思是判断k是否值为100;如果是则返回true,否则false
//!=意思是判断是否不等于,表示如果相等时返回false,否则返回true。
//由于浮点数无法精确存放,所以判断k==1.0这个写法是错误的
//正确写法:a-b的绝对值小于1e-6
//Java提供了一个工具类Math,其中包含一个abs()的方法实现求绝对值
//Math.abs(d1-1)<1e-6 判断浮点类型的变量d1的值是否为1
三、逻辑运算符&&、| |、!
逻辑计算支持短路操作
表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65。
&&:与运算,含义是两个条件必须同时成立,可以翻译为并且
| |:或运算,含义是两个条件中成立一个即可,可以翻译为或者
!:非运算,含义是不是,用于对某个条件进行否定
短路运算
例如A&&B:如果条件A为false,则不会执行B,因为根据运算规则结果一定是flase,和B的值没有关系A||B:如果条件A为true,则不会执行B,因为格局运算规则结果一定是true,和B值没有关系
赋值运算符=,+=,-=,*=,/=,%=
int k=100;含义是将100赋值存储在k对应的存储单元中
k=k+3可以简写
为k+=3 -=*/ /=类似
short k=3;
k=k+3; //出现了一个语法错误,因为k+3这里的3系统识别为int类型,所以计算时所有数据自动转换为
//int类型,必然计算结果也是int类型,将int类型的数据赋值给short类型变量----错误
System.out.println(k);