详细讲解Java运算符(总结分享)

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java运算符的相关问题,包括了算术运算符、关系运算符、逻辑运算符等等,希望对大家有帮助。 一、算术运算符 运算符含义...

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java运算符的相关问题,包括了算术运算符、关系运算符、逻辑运算符等等,希望对大家有帮助。

详细讲解Java运算符(总结分享)插图1

一、算术运算符

运算符含义+求和-相减*乘积/商%求余数(求模)++自加一–自减一

1. ++运算符

1.1 ++在变量前

当++出现在变量前,会先自加一,在做赋值运算

intx=100;inty=++x;步骤:②①System.out.println(x);//101System.out.println(y);//101

1.2 ++在变量后

当++出现在变量后,会先做赋值运算,再自加1

intm=20;intn=m++;步骤:①②System.out.println(n);//20System.out.println(m);//21

1.3 特别地,在print中

intc=90;System.out.println(c++);//传,这个“传”在这里有一个隐形的赋值运算。90//把上面代码拆解开//inttemp=c++;//System.out.println(temp);intd=80;System.out.println(++d);//81//拆解//inttemp2=++d;//System.out.println(temp2);

2. --运算符(例子同++运算符)

2.1 --在变量前

当–出现在变量前,会先自减一,在做赋值运算

2.2 --在变量后

当–出现在变量后,会先做赋值运算,再自减1

注意:

对于++运算符来说:

1、可以出现在变量前,也可以出现在变量后。

2、不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。

二、关系运算符运算符含义>大于>=大于等于<小于<=小于等于==等于!=不等于

注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值。

三、逻辑运算符

运算符含义结果&逻辑与(可以翻译成并且)两边都是true,结果才是true│逻辑或(可以翻译成或者)有一边是true,结果就是true!逻辑非(取反)!true = false、!false = true&&短路与两边都是true,结果才是true││短路或有一边是true,结果就是true

1.短路与 &&

1.1短路与&& 和 逻辑与 &有什么区别?

首先这两个运算符的运算结果没有任何区别,完全相同。

只不过“短路与&&”会发生短路现象。

intx=10;inty=11;System.out.println(x>y&x>y++);//false//通过这个测试得出:x>y++这个表达式执行了。System.out.println(y);//12//测试短路与&&intm=10;intn=11;//使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行//这种现象被称为短路。System.out.println(m>n&&m>n++);System.out.println(n);//11

1.2什么是短路现象呢?

右边表达式不执行,这种现象叫做短路现象。

1.3什么时候使用&&,什么时候使用& ?

从效率方面来说,&&比&的效率高一些。因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。

以后的开发中,短路与&&和逻辑与还是需要同时并存的。大部分情况下都建议使用短路与&&只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。

2.短路或 ||

跟短路与类似

intx=10;inty=11;System.out.println(x<y|x>y++);//teur//通过这个测试得出:x>y++这个表达式执行了。System.out.println(y);//12//测试短路或||intm=10;intn=11;//使用短路或||的时候,当左边的表达式为true的时候,右边的表达式不执行//这种现象被称为短路。System.out.println(m<n||m>n++);System.out.println(n);//11

3.总结

使用短路与 && 的时候,当左边的表达式为false的时候,右边的表达式不执行

使用短路或 || 的时候当左边的表达式结果是true的时候,右边的表达式不执行

注意:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。

四、赋值运算符运算符含义=赋值+=加等(原先的基础上加上/追加这个数)-=减等(同理)*=乘等(同理)/=除等(同理)%=模等(同理)

注:除了第一个是赋值运算符,其他都死拓展赋值运算符!!

很重要的语法机制:

使用扩展赋值运算符的时候,永远都不会改变运算结果类型。

intm=10;m+=10;类似于m=m+1;------->注意是类似!!!!实际不同:i=i+10;和i+=10;一样吗?bytei=10;i+=10;----->没报错其实x+=1等同于:x=(byte)(x+1);i=i+10;---->错误:不兼容的类型:从int转换到byte可能会有损失编译器检测到x+1是int类型,int类型不可以直接赋值给byte类型的变量x!详见Java类型转换的时候需要遵循的规则第六点i+=190;//i=(byte)(i+190);System.out.println(i);//44(当然会自动损失精度了。)

五、条件运算符

1.语法格式:(三目运算符。)

布尔表达式?表达式1:表达式2

2.执行原理是什么?

布尔表达式的结果为true时,表达式1的执行结果作为整个表达式的结果。布尔表达式的结果为false时,表达式2的执行结果作为整个表达式的结果。

好玩点:

chara=true?'男':"女";stringa1=true?'男':"女";以上两个都报错。//下面可以Strings="";s+=true?'男':"女";

六、字符串连接运算符(+)

1.+ 运算符在java语言中有两个作用。

作用1:求和

作用2:字符串拼接

2.什么时候求和?什么时候进行字符串的拼接呢?

当 + 运算符两边都是数字类型的时候,求和。

当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。

3.一定要记住:字符串拼接完之后的结果还是一个字符串。

inta=100;intb=200;//这里的+两边都是数字,所以加法运算intc=a+b;System.out.println(a+"+"+b+"="+a+b);//100+200=100200System.out.println(a+"+"+b+"="+(a+b));//100+200=300

注:遵循“自左向右”的顺序依次执行。(除非额外添加了小括号,小括号的优先级高)

产品猿社区致力收录更多优质的商业产品,给服务商以及软件采购客户提供更多优质的软件产品,帮助开发者变现来实现多方共赢;

日常运营的过程中我们难免会遇到各种版权纠纷等问题,如果您在社区内发现有您的产品未经您授权而被用户提供下载或使用,您可按照我们投诉流程处理,点我投诉

本文来自用户发布投稿,不代表产品猿立场 ;若对此文有疑问或内容有严重错误,可联系平台客服反馈;

部分产品是用户投稿,可能本文没有提供官方下下载地址或教程,若您看到的内容没有下载入口,您可以在我们产品园商城搜索看开发者是否有发布商品;若您是开发者,也诚邀您入驻商城平台发布的产品,地址:点我进入

如若转载,请注明出处:http://www.chanpinyuan.cn/33436.html;
(0)
上一篇 2023年1月17日 下午4:17
下一篇 2023年1月17日 下午4:17

相关推荐

发表回复

登录后才能评论
分享本页
返回顶部