表达式中的关系运算符、逻辑运算符、赋值运算符、==和=的区别,短路运算

今天的学习内容是表达式中的关系运算符、逻辑运算符、赋值运算符、==和=的区别,短路运算

表达式

关系运算符

“>、<、>=、<=、==、!=”
用于判断两个数据之间的大小关系,计算结果为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
  • 内部实现是通过StrictMath实现的,其中通过对等类提供计算实现

Java提供了一个工具类Math,其中包含一个abs()的方法实现求绝对值

  • Math.sqrt() : 计算平方根
  • Math.abs() : 取绝对值
  • Math.ceil(): 逢余进一
  • Math.floor() : 逢余舍一
  • Math.round(): 四舍五入,float时返回int值,double时返回long值
double kk=-15.6;
System.out.println(Math.ceil(kk));//-15.0
System.out.println(Math.floor(kk));//-16.0
System.out.println(Math.round(kk));//-16

-Math.abs(d1-1)<1e-6 判断浮点类型的变量d1的值是否为1。

逻辑运算符

并且&&、或者 ||、不是 !。
在学习中我注意到:逻辑计算支持短路操作

表达多个条件之间的关系。例如年龄大于等于19并且年龄小于77【age>=19 && age<77】

  • &&:与运算,含义是两个条件必须同时成立,可以翻译为并且
//年龄大于等于19并且年龄小于77
age>=19 && age<77
//算法规则:同真则真,其余为假
  • !:非运算,含义是不是,用于对某个条件进行否定
//年龄不小于19
//写法1:
age >=19
//写法2: 
!(age<19//算法规则:非真则假,非假则真

短路运算

例如A && B:如果条件A为false,则不会执行B,因为根据运算规则结果一定是false,和B的值没有关系。

  • A||B:如果条件A为true,则不会执行B,因为根据运算规则结果一定是true,和B的值没有关系。
    如果条件1的结果确定后则整个式子计算结果已经确定,则没有必要计算后续的式子,这就是所谓的短路计算
int age=100;
char cc='A';  //字符之间的大小比较是通过unicode编码值进行比较
if(cc>='B' || age++<200){
	System.out.println("Java");
}
System.out.println(age);
//输出:
//java
//101
int age=100;
char cc='A';
if(cc>='B' && age++<200){
	System.out.println("ZZZZZ");
}
System.out.println(age);//输出100,因为短路的原因,导致age++并没有得到执行
int age=200;
char cc='A';
if(cc>='B' || age++<=200){
	System.out.println("ZZZZZ");
	System.out.println(age);//输出201
}

赋值运算符

,+=,-=,*=,/=,%=

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);*/
short k=3;
k+=3;  //没有语法错误,因为+=这种符号中包含了自动类型转换
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值