手记

JAVA基础语法-运算符

[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

注意点如下所示:

  1. 基本类型的变量、值不能和引用类型的变量、值使用 == 进行比较;
  2. boolean 类型的变量、值不能与其他任意类型的变量、值使用 == 进行比较;
  3. 如果两个引用类型之间没有父子继承关系,那么它们的变量也不能使用 == 进行比较。
  4. == 和 != 可以应用于基本数据类型和引用类型。当用于引用类型比较时,比较的是两个引用是否指向同一个对象,但当时实际开发过程多数情况下,只是比较对象的内容是否相当,不需要比较是否为同一个对象。

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

关系表达式通常用于 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;
0人推荐
随时随地看视频
慕课网APP