[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 型的变量或表达式能够通过逻辑运算符联合成为逻辑表达式。逻辑运算符 &&、|| 和 !按表 进行逻辑运算。

aba&&ba\\b!a
truetruetruetruefalse
falsetruefalsetruetrue
truefalsefalsetruefalse
falsefalsefalsefalsetrue

逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。联合方向是:逻辑非(单目运算符)具备右联合性,逻辑与和逻辑或(双目运算符)具备左联合性。

3.比拟运算符

关系表达式是由关系运算符连接起来的表达式。关系运算符中“关系”二字的含意是指一个数据与另一个数据之间的关系,这种关系只有成立与不成立两种可能状况,能够用逻辑值来示意,逻辑上的 true 与 false 用数字 1 与 0 来示意。关系成立时表达式的后果为 true(或 1),否则表达式的后果为 false(或 0)。表 1 给出了比拟运算符的含意及其实例利用。

运算符含意阐明实例后果
>大于运算符只反对左右两边操作数是数值类型。如果后面变量的值大于前面变量的值, 则返回 true。2>3false
>=大于或等于运算符只反对左右两边操作数是数值类型。如果后面变量的值大于等于前面变量的值, 则返回 true。4>=2true
<小于运算符只反对左右两边操作数是数值类型。如果后面变量的值小于前面变量的值,则返回 true。2<3true
<=小于或等于运算符只反对左右两边操作数是数值类型。如果后面变量的值小于等于前面变量的值, 则返回 true。4<=2false
==相等运算符如果进行比拟的两个操作数都是数值类型,无论它们的数据类型是否雷同,只有它们的值相等,也都将返回 true。 如果两个操作数都是援用类型,只有当两个援用变量的类型具备父子关系时才能够比拟,只有两个援用指向的不是同一个对象就会返回 true。 Java 也反对两个 boolean 类型的值进行比拟。4==4 97=='a' 5.0==5 true==falsetrue true true false
!=不相等运算符如果进行比拟的两个操作数都是数值类型,无论它们的数据类型是否雷同,只有它们的值不相等,也都将返回 true。 如果两个操作数都是援用类型,只有当两个援用变量的类型具备父子关系时才能够比拟,只有两个援用指向的不是同一个对象就会返回 true。4!=2true

留神点如下所示:

  1. 根本类型的变量、值不能和援用类型的变量、值应用 == 进行比拟;boolean 类型的变量、值不能与其余任意类型的变量、值应用 == 进行比拟;如果两个援用类型之间没有父子继承关系,那么它们的变量也不能应用 == 进行比拟。
  2. == 和 != 能够利用于根本数据类型和援用类型。当用于援用类型比拟时,比拟的是两个援用是否指向同一个对象,但过后理论开发过程少数状况下,只是比拟对象的内容是否相当,不须要比拟是否为同一个对象。

关系运算符的优先级为:>、<、>=、<= 具备雷同的优先级,并且高于具备雷同优先级的 !=、==。关系运算符的优先级高于赋值运算符而低于算术运算符,联合方向是自左向右。

关系表达式通常用于 Java 程序的逻辑判断语句的条件表达式中。应用关系表达式要留神以下几点:

  • 运算符 >=、==、!=、<= 是两个字符形成的一个运算符,用空格从中离开写就会产生语法错误。例如 x> =y; 是谬误的,然而能够写成x >= y; 在运算符的两侧减少空格会进步可读性。同样将运算符写反,例如 =>、=<、=! 等模式会产生语法错误。
  • 因为计算机内寄存的实数与理论的实数存在着肯定的误差,如果对浮点数进行 ==(相等)或 !=(不相等)的比拟,容易产生谬误后果,应该尽量避免。
  • 不要将“==”写成“=”。

4.位运算符

位逻辑运算符蕴含 4 个:&(与)、|(或)、~(非)和 ^(异或)。除了 ~(即位取反)为单目运算符外,其余都为双目运算符。表 1 中列出了它们的根本用法。

运算符含意实例后果
&按位进行与运算(AND)4 & 54
\按位进行或运算(OR)4 \ 55
^按位进行异或运算(XOR)4 ^ 51
~按位进行取反运算(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;
欢送大家点赞珍藏!

关注公众号:光头开发者,反对作者,共同进步!