“全栈2019”Java第十七章:赋值运算符和算术运算符

219 阅读5分钟
原文链接: www.toutiao.com

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

1.什么是运算符?

“全栈2019”Java第十七章:赋值运算符和算术运算符

运算符是对一个,两个或三个操作数执行特定操作的特殊符号,然后返回结果。

2.赋值运算符

我们遇到的最常见的运算符之一是赋值运算符“ =”。

它将右侧的值赋给左侧的操作数:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

赋值运算符还可以用于对象以分配对象引用,这个后面会讲解到,这里先预习一下:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

3.算术运算符

“全栈2019”Java第十七章:赋值运算符和算术运算符

Java编程语言提供执行加法,减法,乘法和除法的运算符。这四种运算符小学都学过。

“全栈2019”Java第十七章:赋值运算符和算术运算符

唯一可能对你来说很新的符号是“ %”,它将一个操作数除以另一个操作数,并将余数作为结果返回。

“全栈2019”Java第十七章:赋值运算符和算术运算符

我们先来演示加减乘除:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

我们再来看一下取余运算符:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

4.复合赋值

我们还可以将算术运算符与简单赋值运算符组合以创建复合赋值

可以使用的运算符有+=、-=、*=、/=和%=。

接下来依次演示它们的用法。

+= 先进行加法运算再赋值:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

-= 先进行减法运算再赋值:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

*= 先进行乘法运算再赋值:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

/= 先进行除法运算再赋值:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

%= 先进行取余运算再赋值:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

5.连接符

“+”运算符也可以用于连接两个字符串在一起:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

6.字符串与加法运算符

我们先来看一个字符串“abc”:

“全栈2019”Java第十七章:赋值运算符和算术运算符

我们用格子来将字符串“abc”画出来:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

我们此时再来加上一个数字:

“全栈2019”Java第十七章:赋值运算符和算术运算符

此时的结果是:

“全栈2019”Java第十七章:赋值运算符和算术运算符

我们画出来这个计算过程:

“全栈2019”Java第十七章:赋值运算符和算术运算符

将数字1加入了字符串(字符串是由字符组成的数组,数组会在后续章节中讲解)中。

如果,此时我们有如下运算:

“全栈2019”Java第十七章:赋值运算符和算术运算符

结果会是“abc3”吗?我们来看运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

结果并不是“abc3”,而是“abc12”,说明连接符将字符串与数字1连接在一起组成新的字符串之后,再与数字2进行连接,组成新的字符串“abc12”。我们来一步一步揭开谜底。

第一步:先计算“abc”+1,得到“abc1”

“全栈2019”Java第十七章:赋值运算符和算术运算符

第二步:再计算“abc1”+2,得到“abc12”

“全栈2019”Java第十七章:赋值运算符和算术运算符

7.字符串与减法运算符

书写以下代码:

“全栈2019”Java第十七章:赋值运算符和算术运算符

上面错误的写法,字符串后面不能跟减法运算符。

错误原因:

“全栈2019”Java第十七章:赋值运算符和算术运算符

以下写法也不行:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果不是“abc0”,而是程序错误。

8.字符串与乘法运算符

字符串后面不能直接跟乘法运算符:

“全栈2019”Java第十七章:赋值运算符和算术运算符

错误原因:

“全栈2019”Java第十七章:赋值运算符和算术运算符

但是,字符串后面连接乘法运算是可以的:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

9.字符串与除法运算符

同样的,字符串后面不能直接跟除法运算符:

“全栈2019”Java第十七章:赋值运算符和算术运算符

错误原因:

“全栈2019”Java第十七章:赋值运算符和算术运算符

但是,字符串后面连接除法运算是可以的:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

10.字符串与取余运算符

同样的,字符串后面不能直接跟取余运算符:

“全栈2019”Java第十七章:赋值运算符和算术运算符

错误原因:

“全栈2019”Java第十七章:赋值运算符和算术运算符

但是,字符串后面连接取余运算是可以的:

“全栈2019”Java第十七章:赋值运算符和算术运算符

运行结果:

“全栈2019”Java第十七章:赋值运算符和算术运算符

11.运算符等级

我们将上面字符串连接各个算术运算符的例子结合起来:

“全栈2019”Java第十七章:赋值运算符和算术运算符

发现,只有减法运算不能与字符串连接。为什么呢?

小学学过,加减乘除在一起,先算乘除,再算加减。这是因为乘除的优先级要比加减的优先级高。而乘法和除法优先级相同,谁在前先算谁,同理,加法和减法优先级也相同,谁在前先算谁。

乘法与除法

“全栈2019”Java第十七章:赋值运算符和算术运算符

如此一来,字符串后面通过连接符连接乘法与除法都理所应当,先算乘除法。而加减法则不一定。

取余

“全栈2019”Java第十七章:赋值运算符和算术运算符

取余运算符也高于连接符,在文章的最后可以通过运算符表看出来。所以先取余,再通过连接符连接字符串。

加法运算符不叫加法运算符,叫连接符

“全栈2019”Java第十七章:赋值运算符和算术运算符

字符串后面跟的这个符号“+”,不叫加法运算符,叫连接符。用来连接字符串与后面计算结果。

减法

为什么减法运算不能跟在连接符后面呢?因为减法运算符和连接符同一等级。而同一等级,就得谁在前,先算谁:

“全栈2019”Java第十七章:赋值运算符和算术运算符

前面计算结果是“abc1”,接下来再算剩下的:

“全栈2019”Java第十七章:赋值运算符和算术运算符

有谁知道“abc1”-1等于多少?它没法计算,这个表达式就是错误的。那有人就说了,“+”与“-”是同一等级,为什么“+”可以?因为“+”在这里不是加法运算符而是连接符,所以“+”可以。

至此,Java中赋值运算符和算术运算符相关内容讲解先告一段落,更多内容请持续关注。

附:运算符表

“全栈2019”Java第十七章:赋值运算符和算术运算符

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

“全栈2019”Java第十六章:下划线在数字中的意义

下一章

“全栈2019”Java第十八章:一元运算符

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

“全栈2019”Java第十七章:赋值运算符和算术运算符

版权声明

原创不易,未经允许不得转载!