网站首页 > java教程 正文
难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
1.什么是运算符?
运算符是对一个,两个或三个操作数执行特定操作的特殊符号,然后返回结果。
2.赋值运算符
我们遇到的最常见的运算符之一是赋值运算符“ =”。
它将右侧的值赋给左侧的操作数:
运行结果:
赋值运算符还可以用于对象以分配对象引用,这个后面会讲解到,这里先预习一下:
运行结果:
3.算术运算符
Java编程语言提供执行加法,减法,乘法和除法的运算符。这四种运算符小学都学过。
唯一可能对你来说很新的符号是“ %”,它将一个操作数除以另一个操作数,并将余数作为结果返回。
我们先来演示加减乘除:
运行结果:
我们再来看一下取余运算符:
运行结果:
4.复合赋值
我们还可以将算术运算符与简单赋值运算符组合以创建复合赋值。
可以使用的运算符有+=、-=、*=、/=和%=。
接下来依次演示它们的用法。
+= 先进行加法运算再赋值:
运行结果:
-= 先进行减法运算再赋值:
运行结果:
*= 先进行乘法运算再赋值:
运行结果:
/= 先进行除法运算再赋值:
运行结果:
%= 先进行取余运算再赋值:
运行结果:
5.连接符
“+”运算符也可以用于连接两个字符串在一起:
运行结果:
6.字符串与加法运算符
我们先来看一个字符串“abc”:
我们用格子来将字符串“abc”画出来:
运行结果:
我们此时再来加上一个数字:
此时的结果是:
我们画出来这个计算过程:
将数字1加入了字符串(字符串是由字符组成的数组,数组会在后续章节中讲解)中。
如果,此时我们有如下运算:
结果会是“abc3”吗?我们来看运行结果:
结果并不是“abc3”,而是“abc12”,说明连接符将字符串与数字1连接在一起组成新的字符串之后,再与数字2进行连接,组成新的字符串“abc12”。我们来一步一步揭开谜底。
第一步:先计算“abc”+1,得到“abc1”
第二步:再计算“abc1”+2,得到“abc12”
7.字符串与减法运算符
书写以下代码:
上面错误的写法,字符串后面不能跟减法运算符。
错误原因:
以下写法也不行:
运行结果不是“abc0”,而是程序错误。
8.字符串与乘法运算符
字符串后面不能直接跟乘法运算符:
错误原因:
但是,字符串后面连接乘法运算是可以的:
运行结果:
9.字符串与除法运算符
同样的,字符串后面不能直接跟除法运算符:
错误原因:
但是,字符串后面连接除法运算是可以的:
运行结果:
10.字符串与取余运算符
同样的,字符串后面不能直接跟取余运算符:
错误原因:
但是,字符串后面连接取余运算是可以的:
运行结果:
11.运算符等级
我们将上面字符串连接各个算术运算符的例子结合起来:
发现,只有减法运算不能与字符串连接。为什么呢?
小学学过,加减乘除在一起,先算乘除,再算加减。这是因为乘除的优先级要比加减的优先级高。而乘法和除法优先级相同,谁在前先算谁,同理,加法和减法优先级也相同,谁在前先算谁。
乘法与除法
如此一来,字符串后面通过连接符连接乘法与除法都理所应当,先算乘除法。而加减法则不一定。
取余
取余运算符也高于连接符,在文章的最后可以通过运算符表看出来。所以先取余,再通过连接符连接字符串。
加法运算符不叫加法运算符,叫连接符
字符串后面跟的这个符号“+”,不叫加法运算符,叫连接符。用来连接字符串与后面计算结果。
减法
为什么减法运算不能跟在连接符后面呢?因为减法运算符和连接符同一等级。而同一等级,就得谁在前,先算谁:
前面计算结果是“abc1”,接下来再算剩下的:
有谁知道“abc1”-1等于多少?它没法计算,这个表达式就是错误的。那有人就说了,“+”与“-”是同一等级,为什么“+”可以?因为“+”在这里不是加法运算符而是连接符,所以“+”可以。
至此,Java中赋值运算符和算术运算符相关内容讲解先告一段落,更多内容请持续关注。
附:运算符表
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第十八章:一元运算符
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号gorhaf,私信“Java学习小组”。
- 方式二:关注公众号gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!
- 上一篇: java学习——6运算符与表达式(一)
- 下一篇: leetcode29两数相除(两数相除什么意思)
猜你喜欢
- 2024-10-11 Java的“异常”(JAVA的异常体系)
- 2024-10-11 第四讲《JAVA基础之运算符》,小妙招教你速记、速填坑
- 2024-10-11 容易让人忽视的,java高精度运算(java高精度转低精度的原则)
- 2024-10-11 提高千倍效率的 Java 代码小技巧(java提高班)
- 2024-10-11 一文搞明白java中的位运算、补码、反码、原码
- 2024-10-11 十五、Java运算符-赋值运算符与instanceof运算符
- 2024-10-11 一文掌握Java二、八、十六进制运算实现原理
- 2024-10-11 计算机进制转换(计算机进制转换教程)
- 2024-10-11 Java基础之try catch finally的原理
- 2024-10-11 LeetCode算法第29题:两数相除(计算两数相除并输出结果)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)