[toc]
JAVA 根底语法 - 运算符
运算符是一种非凡的符号,用以示意数据的运算、赋值和比拟等。
运算符类型有以下 6 类:
- 算术运算符
- 赋值运算符
- 比拟运算符(关系运算符)
- 逻辑运算符
- 位运算符
- 三元运算符
1. 算术运算符
算术一元运算一共有 3 个,别离是 -、++ 和 –。具体阐明参见表。
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
– | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
— | 自减一 | 先取值再减一,或先减一再取值 | a– 或 –a |
二元运算符: Java 语言中算术运算符的性能是进行算术运算,除了常常应用的加(+)、减(-)、乘()和除(\)外,还有取模运算(%)。加(+)、减(-)、乘()、除(\)和咱们平时接触的数学运算具备雷同的含意。具体阐明参见表。
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连贯操作 | a + b |
– | 减 | 求 a 减 b 的差 | a – b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余 | 求 a 除以 b 的余数 | a % b |
2. 赋值运算符
其语法格局如下所示:
变量名称 = 表达式内容
运算符 | 含意 | 实例 | 后果 |
---|---|---|---|
+= | 将该运算符右边的数值加上左边的数值,其后果赋值给右边变量自身 | int a=5; a+=2; | a=7 |
-= | 将该运算符右边的数值减去左边的数值,其后果赋值给右边变量自身 | int a=5; a-=2; | a=3 |
*= | 将该运算符右边的数值乘以左边的数值,其后果赋值给右边变量自身 | int a=5; a*=2; | a=10 |
/= | 将该运算符右边的数值整除左边的数值,其后果赋值给右边变量自身 | int a=5; a/=2; | a=2 |
%= | 将该运算符右边的数值除以左边的数值后取余,其后果赋值给右边变量自身 | int a=5; a%=2; | a=1 |
3. 逻辑运算符
运算符 | 用法 | 含意 | 阐明 | ||||
---|---|---|---|---|---|---|---|
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | ||||
\ | \ | a\ | \ | b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | ||||
\ | a\ | b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | |||
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false |
- && 与 & 区别:如果 a 为 false,则不计算 b(因为不管 b 为何值,后果都为 false)
- || 与 | 区别:如果 a 为 true,则不计算 b(因为不管 b 为何值,后果都为 true)
留神:短路与(&&)和短路或(||)可能采纳最优化的计算形式,从而提高效率。在理论编程时,应该优先思考应用短路与和短路或。
后果为 boolean 型的变量或表达式能够通过逻辑运算符联合成为逻辑表达式。逻辑运算符 &&、|| 和!按表 进行逻辑运算。
a | b | a&&b | a\ | \ | b | !a |
---|---|---|---|---|---|---|
true | true | true | true | false | ||
false | true | false | true | true | ||
true | false | false | true | false | ||
false | false | false | false | true |
逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。联合方向是:逻辑非(单目运算符)具备右联合性,逻辑与和逻辑或(双目运算符)具备左联合性。
3. 比拟运算符
关系表达式是由关系运算符连接起来的表达式。关系运算符中“关系”二字的含意是指一个数据与另一个数据之间的关系,这种关系只有成立与不成立两种可能状况,能够用逻辑值来示意,逻辑上的 true 与 false 用数字 1 与 0 来示意。关系成立时表达式的后果为 true(或 1),否则表达式的后果为 false(或 0)。表 1 给出了比拟运算符的含意及其实例利用。
运算符 | 含意 | 阐明 | 实例 | 后果 |
---|---|---|---|---|
> | 大于运算符 | 只反对左右两边操作数是数值类型。如果后面变量的值大于前面变量的值,则返回 true。 | 2>3 | false |
>= | 大于或等于运算符 | 只反对左右两边操作数是数值类型。如果后面变量的值大于等于前面变量的值,则返回 true。 | 4>=2 | true |
< | 小于运算符 | 只反对左右两边操作数是数值类型。如果后面变量的值小于前面变量的值,则返回 true。 | 2<3 | true |
<= | 小于或等于运算符 | 只反对左右两边操作数是数值类型。如果后面变量的值小于等于前面变量的值,则返回 true。 | 4<=2 | false |
== | 相等运算符 | 如果进行比拟的两个操作数都是数值类型,无论它们的数据类型是否雷同,只有它们的值相等,也都将返回 true。如果两个操作数都是援用类型,只有当两个援用变量的类型具备父子关系时才能够比拟,只有两个援用指向的不是同一个对象就会返回 true。Java 也反对两个 boolean 类型的值进行比拟。 | 4==4 97==’a’ 5.0==5 true==false | true true true false |
!= | 不相等运算符 | 如果进行比拟的两个操作数都是数值类型,无论它们的数据类型是否雷同,只有它们的值不相等,也都将返回 true。如果两个操作数都是援用类型,只有当两个援用变量的类型具备父子关系时才能够比拟,只有两个援用指向的不是同一个对象就会返回 true。 | 4!=2 | true |
留神点如下所示:
- 根本类型的变量、值不能和援用类型的变量、值应用 == 进行比拟;boolean 类型的变量、值不能与其余任意类型的变量、值应用 == 进行比拟;如果两个援用类型之间没有父子继承关系,那么它们的变量也不能应用 == 进行比拟。
- == 和 != 能够利用于根本数据类型和援用类型。当用于援用类型比拟时,比拟的是两个援用是否指向同一个对象,但过后理论开发过程少数状况下,只是比拟对象的内容是否相当,不须要比拟是否为同一个对象。
关系运算符的优先级为:>、<、>=、<= 具备雷同的优先级,并且高于具备雷同优先级的 !=、==。关系运算符的优先级高于赋值运算符而低于算术运算符,联合方向是自左向右。
关系表达式通常用于 Java 程序的逻辑判断语句的条件表达式中。应用关系表达式要留神以下几点:
- 运算符 >=、==、!=、<= 是两个字符形成的一个运算符,用空格从中离开写就会产生语法错误。例如
x> =y;
是谬误的,然而能够写成x >= y;
在运算符的两侧减少空格会进步可读性。同样将运算符写反,例如 =>、=<、=! 等模式会产生语法错误。 - 因为计算机内寄存的实数与理论的实数存在着肯定的误差,如果对浮点数进行 ==(相等)或 !=(不相等)的比拟,容易产生谬误后果,应该尽量避免。
- 不要将“==”写成“=”。
4. 位运算符
位逻辑运算符蕴含 4 个:&(与)、|(或)、~(非)和 ^(异或)。除了 ~(即位取反)为单目运算符外,其余都为双目运算符。表 1 中列出了它们的根本用法。
运算符 | 含意 | 实例 | 后果 |
---|---|---|---|
& | 按位进行与运算(AND) | 4 & 5 | 4 |
\ | 按位进行或运算(OR) | 4 \ 5 | 5 |
^ | 按位进行异或运算(XOR) | 4 ^ 5 | 1 |
~ | 按位进行取反运算(NOT) | ~ 4 | -5 |
5. 三元运算符
Java 提供了一个特地的三元运算符(也叫三目运算符)常常用于取代某个类型的 if-then-else 语句。条件运算符的符号示意为“?:”,应用该运算符时须要有三个操作数,因而称其为三目运算符。应用条件运算符的个别语法结构为:result = <expression> ? <statement1> : <statement3>;
其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1,否则就执行 statement3。此三元运算符要求返回一个后果,因而要实现简略的二分支程序,即可应用该条件运算符。上面是一个应用条件运算符的示例。纯文本复制
int x,y,z;
x = 6,y = 2;
z = x>y ? x-y : x+y;
欢送大家点赞珍藏!
关注公众号: 光头开发者 ,反对作者,共同进步!