自学内容网 自学内容网

最新Java零基础知识(第五章运算符)

5. 第五章 运算符

5.1 章节目标与知识框架

5.1.1 章节目标

掌握常见的 Java 运算符的使用,包括算术运算符、关系运算符、逻辑运算符、赋值运算符、

条件运算符、字符串连接运算符。

5.1.2 知识框架

5.2 运算符概述(了解)

运算符是指对操作数的运算方式。组成表达式的 Java 操作符有很多种(什么是操作数和操

作符,例如 1+2,其中 1 2 都是操作数,+是操作符,操作符和操作数联合起来构成表达式)。

运算符按照其要求的操作数数目来分,可以有单目运算符(1 个操作数)、双目运算符(2

操作数)和三目运算符(3 个操作数)。运算符按其功能来分,有算术运算符、赋值运算符、

关系运算符、逻辑运算符、位运算符、条件运算符、字符串连接运算符和其他运算符。常见的

运算符如下所示:

每个编程语言当中都有运算符,基本上都是通用的,这么多的运算符,它们同时出现的时

候有优先级吗?答案是有的。那么如果不确定它们的优先级怎么办,其实很简单,直接加小括

号就可以了,添加有小括号优先级一定是高的,所以优先级不需要死记硬背,不确定就加小括

号,例如:1 + 2 * 3,想确保先求和,你就需要这样写:(1+2)*3

5.3 运算符详解

5.3.1 算术运算符(掌握)

算术运算符包括:+(两个数字求和)、-(两个数字相减)、*(两个数字乘积)、/(两

个数字相除)、%(两个数字取模或者求余)、++(单目运算符,对数字自加 1)、--(单目

运算符,对数字自减 1)。对于初学者来说,可能%++--比较生疏一些,我们重点来学习

一下,请看以下代码(注意代码中的注释信息):

运行结果如下图所示:

通过以上代码的学习,我们得知,第一:两个 int 类型数据进行数学运算之后的结果一定

int 类型;第二:++--可以出现在变量前也可以是变量后;第三:++无论出现在变量前还

是变量后,只要执行了++,那么变量必然会自加 1;第四:++出现在变量后会先进行赋值运算,

再自加 1;第五:++出现在变量前会先自加 1,再进行赋值运算。那么,大家思考一下以下代

码的执行结果是什么?

5.3.2 关系运算符(掌握)

关系运算符主要是完成数据和数据之间的比较,比如:5>3,结果是 true(真),5>10

结果是 false(假),那么关系运算符都有哪些呢?>>=<<===!=。关系运算符是比

较简单容易理解的,我们来看一段代码(注意代码中的注释):

通过以上代码可以看出,任何一个关系运算符的运算结果都是布尔类型,最后的结果不是

true 就是 false,没有其他值,并且我们也看到 a 变量和 b 变量在比较的时候是拿着变量当中保

存的值进行比较。也就是说 a == b 实际上是拿着 a 变量中保存的 10 b 变量中保存的 10 进行

比较,看它们是否相等。

5.3.3 逻辑运算符(掌握)

逻辑运算符主要包括逻辑与(&),逻辑或(|),逻辑异或(^),短路与(&&),短路

或(||)。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型。

逻辑运算符的基本运算规则如下表所示

接下来我们来研究一段代码,重点看看短路是如何发生的(注意看注释信息):

通过以上的测试,可以得出短路与(&&)在左边的表达式结果为 false 的时候,右边的表

达式则不再执行,这种现象被称为短路现象,这种机制也显得短路与比较智能一些,效率更高

一些,所以在实际开发中短路与(&&)的使用率要比逻辑与高一些。但这并不是绝对的,有

的时候也可能会选择使用逻辑与(&),这取决于你是否期望右边的表达式一定执行

大家思考一个问题,短路或( || )在什么情况下会发生短路现象呢?

5.3.4 赋值运算符(掌握)

赋值运算符目前也是只需要掌握=+=-=*=/=%=,其它和二进制相关的内容也是

到后面遇到的时候再详细学习。赋值类的运算符包括基本赋值运算符(=)和扩展的赋值运算

符(+=-=*=/=%=)。我们来看一段代码:

x += 1 x = x + 1 真的是完全相同吗?我们来看下面的代码:

根据以上代码测试得出,对于扩展类的赋值运算符在运算的过程中不会改变运算的结果类

型,也就是说 byte b = 100; b += 1000;b 变量最初是 byte 类型,最后的运算结果还是一个 byte

类型。这是一条固定的语法规则,大家记住就行了,以后在使用扩展类赋值运算符的时候要谨

慎,不小心就会精度损失的。

5.3.5 条件运算符(掌握)

条件运算符属于三目运算符,它的语法结构是:布尔表达式?表达式 1:表达式 2。它的运行

原理是这样的,先判断布尔表达式的结果是 true 还是 false,如果是 true,则选择表达式 1 的结

果作为整个表达式的结果,反之则选择表达式 2 的结果作为整个表达式的结果。来看一段代码:

实际上条件运算符和后期要学习的控制语句 if 可以达到同等效果。在实际开发中灵活运用

条件运算符会让你的代码看起来更加简洁清凉,达到意想不到的效果。

5.3.6 字符串连接运算符(掌握)

java 语言中所有的字符串都使用半角双引号括起来的,字符串属于引用数据类型,不属

于基本数据类型的范畴,怎么定义一个字符串的变量呢?例如:String name = “jack”;,这就类

似于 int i = 10;是一样的,int 是一种整数类型,i 是变量,10 是整数型字面量。那么 String

是一种字符串类型,name 是变量,”jack”是字符串型字面量。在 java 编程中对字符串的操作

是非常频繁的,例如字符串的连接操作,此时就需要使用“+”字符串连接运算符了。

实际上“+”运算符在 java 语言中有两个作用,作用一是对数字进行求和运算,作用二就

是字符串连接运算,那么它在什么时候是进行求和,什么时候又进行字符串连接呢?大家可以

这样进行区分,当“+”运算的时候,两边的操作数都是数字的话,一定会进行求和运算,只

要其中有一个操作数是字符串类型,那么一定会进行字符串拼接运算,字符串拼接之后的结果

还是字符串类型。需要注意的是,当一个表达式当中有多个“+”,并且在没有小括号的前提

下,遵循自左向右的顺序依次执行。我们来看一段程序:

对于程序 System.out.println(a + " + " + b + " = " + a + b);的分析见下图:

对于程序 System.out.println(a + " + " + b + " = " + (a + b));的分析见下图:

总之,使用“+”进行字符串拼接在开发中使用太频繁了,大家一定要将其掌握,尤其是

怎么将一个变量放到字符串当中,你还记得以上程序的口诀吗?

除了以上所讲的运算符之外,实际上还有其它运算符,例如位运算符主要操作二进制位的,

还有运算符 instanceofnew 等。这里就不再赘述了,当前使用较少,后期使用到的时候我们

再看。

5.4 章节小结

本章节内容需要大家掌握开发中常用运算符的使用,包括算术运算符、关系运算符、逻辑

运算符、赋值运算符、条件运算符、字符串连接运算符。实际上除了以上所讲运算符之外,还

有其它运算符,比如位运算符、instanceofnew等运算符,在当下使用较少,后期用到的时候

再进行学习。

本章节内容具有通用性,不仅仅是在 Java 中可以使用,在其他的编程语言中也可以使用。

运算符在实际的开发中使用频率很高,因为软件存在的目的就是为了解决数据的处理。在这里

想和大家说的是,学好每一个运算符的用法,为后面的学习打下扎实的基础。

5.5 难点解惑

本章节的难点主要还是++运算符的使用,例如以下代码

我们对以上程序进行分析,k 变量等于 10,输出 k++,我们可以将 System.out.println(k++)

这行代码进行拆解,可以拆解为两行代码:int temp = k++; System.out.println(temp);,也就是说

实际上输出 k++就是输出 temp,根据之前所学规则,temp 等于 10,所以 System.out.println(k++)

会输出 10。不过当这行代码执行结束之后 k 就不再是 10 了,变成了 11

我们继续再向下分析:System.out.println(++k)。这行代码同样也可以拆分为两行代码:int

temp2 = ++k; System.out.println(temp2);。其中 k 已经等于 11 了,根据以上所学规则 temp2 的值

12,所以最终输出 12

我们对以上的程序进行编译并运行,来看一下我们分析是否正确,请看下图:


原文地址:https://blog.csdn.net/m0_61840987/article/details/143895419

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!