详解JAVA运算符与表达式
目录
一、运算符
运算符用于连接表达式的操作数,并对操作数执行运算。例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。在java语言中,运算符可分为5种类型:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。位运算符涉及到二进制位的运算,在java 程序中运用不是很多,因此下面主要介绍算术运算符、赋值运算符、关系运算符和逻辑运算符。
(1)算术运算符
算术运算符用在算术表达式中,其作用和数学中的运算符相同。
下表列出了Java语言支持的算术运算符。
算术运算符一般用于数值运算,可对操作数进行加减乘除、取余、自增和自减操作。
加减乘除、取余运算符比较容易理解。下面重点说说自增和自减运算符。
自增自减是单目运算符,只需要一个操作数参加运算。例如:a++、++a、a--、--a等。其中,a是操作数,++是自增运算符,--是自减运算符,自增和自减运算符即可以放在变量的前面,也可以放在变量的后面,例如++a、 a++。
自增(++):将变量的值加1,分前缀式(如++a)和后缀式(如a++)。前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--a)和后缀式(如a--)。前缀式是先减1再使用;后缀式是先使用再减1。
(2)赋值运算符
赋值运算符是双目运算符,用在赋值表达式中。它的作用是将运算符右边操作数的值赋给运算符左边的变量。
下表列出了Java语言支持的赋值运算符。
赋值运算符分为两类,一类是简单赋值,一类是复合赋值。简单赋值是直接把运算符右边操作数的值赋给运算符左边的变量,运算符有“=”;复合赋值运算符复合赋值是先执行运算符指定的运算,然后再将运算结果赋值给运算符左边的变量,复合赋值运算符有“+=、-=、*=、/=、%=”。
简单赋值运算符非常容易明白和理解。下面重点说说复合赋值运算符“+=”操作,其它复合赋值运算符操作原理同“+=”运算符操作原理相同,这里就不再一一讲述了。
复合赋值运算符“+=”操作执行过程如下:
1) 将运算符右侧的操作数,与运算符左侧的操作数(变量值)执行相加操作;
2) 相加的结果赋值给运算符左侧的变量。
例如下面语句:
int num = 10;
num+= 20;
声明的变量num初始值为10,然后执行num+= 20赋值操作,其操作过程是变量num先与数值20相加,相加的结果是30,然后再将30赋值给变量num,此时变量num的值为30。
(3)关系运算符
关系运算符也是双目运算符,用于关系表达式。关系运算符对两个操作数进行比较,并返回比较结果,比较结果的值为一个布尔值(true或false)。下表列出了Java语言支持的关系运算符,表中例子假设A和B不相等,并且其A小于B。
关系运算符用于比较两个操作数的大小,两个操作数共有六种比较方式:
第一种比较方式是判断两个操作数是否相等,用运算符“==”进行运算,如果两个操作数相等,比较结果返回true,否则返回false。
第二种比较方式是判断两个操作数是否不相等,用运算符“!=”进行运算,如果两个操作数不相等,比较结果返回true,否则返回false。
第三种比较方式是判断运算符左边的操作数是否大于运算符右边的操作数,用运算符“〉”进行运算,如果左边的操作数比右边的操作数大,比较结果返回true,否则返回false。
第四种比较方式是判断运算符左边的操作数是否小于运算符右边的操作数,用运算符“<”进行运算,如果左边的操作数比右边的操作数小,比较结果返回true,否则返回false。
第五和第六种比较方式是判断运算符左边的操作数是否大于等于或小于等于右边的操作数,用运算符“〉=和<=”进行运算,如果比较结果满足要求,则返回true,否则返回false。
(4)逻辑运算符
逻辑运算符连接两个关系表达式或布尔变量,用于解决多个关系表达式的组合判断问题,返回的运算结果为布尔值。
例如,在数学中,表示一个数值的范围时,经常用不等式来表述,假设一个数值取值范围为0到100,设该数值为x,不等式0<x<100给出了x的取值范围。在java程序语言中,这个不等式只能分解为x<0和x>100两个关系表达式,然后用逻辑运算符进行连接。
下表列出了Java语言支持的逻辑运算符,表中假设布尔变量A为真,变量B为假。
逻辑运算符“&&”是双目运算符,用于判断两个关系表达式或布尔变量是否都为真,只有两个表达式的返回结果都为真时,运算结果为真,否则运算结果为假。
逻辑运算符“||”是双目运算符,用于判断两个关系表达式或布尔变量是否有一个为真,如果有一个为真,返回结果为true,否则返回false。
逻辑运算符“!”是单目运算符,用于取反关系表达式返回的值。例如:对于关系表达式a>b,如果a> b为真,取反后为false,如果a> b为假,取反后为true。
(5)运算符的优先级
和数学中的运算符一样,Java运算符也存在优先级关系。在Java表达式中,优先级高的运算符先参与运算,优先级低的运算符后参与运算。
下表给出了运算符的优先级,表中优先级栏,数字越小优先级越高,每个运算符用中文顿号分割。
表中结合性指运算符结合的顺序,通常都是从左到右。从右到左的运算符最典型的就是数值前面的正负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。
二、表达式
求圆面积的公式就是一个表达式,其中S、π、r为变量或常量,省略的乘号为运算符,r的2次方可以描述为r*r。求圆面积的表达式为:
表达式是由变量、常量和运算符的组合,它执行计算并返回计算结果。在表达式中运算符作用的变量或常量称为操作数。在求圆面积的表达式中,乘号(*)为运算符,π和r为操作数。
在一些复杂的运算中,简单的表达式可以组合为复杂的表达式,其操作数本身可能就是一个表达式。例如:
上面的表达式中,运算符乘号(*)两边的操作数(num1+num2)和(x+y)本身就是一个表达式。表达式的计算结果一般为数值,如果表达式是一个关系表达式或逻辑表达式,表达式会返回一个布尔值,即真或假。
根据运算符的不同,可以把表达式分为赋值表达式、算术表达式、关系表达式和逻辑表达式。赋值表达式用于把等号右边的操作数赋值给等号左边的变量;算术表达式用于数值运算;关系表达式用于条件判断;逻辑表达式用于逻辑操作。
三、知识总结
1、表达式
表达式同数学中的算式相同,是由变量、常量和运算符组合而成的。最简单的表达式仅由一个运算符和一个操作数构成,较复杂的表达式则由多个运算符以及多个操作数构成。表达式必须返回计算结果,计算结果或为值或为布尔值。
2、运算符
运算符对参与的操作数进行运算,根据参与运算的操作数的个数可把运算符分为单目运算符、双目运算符和三目运算符。当一个表达式包含多个运算符时,就需要考虑运算符的优先级,优先级高的运算符先参与运算,优先级低的运算符后参与运算。
在实际的开发中,不需要特别去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号辅助进行优先级管理。
- 点赞
- 收藏
- 关注作者
评论(0)