Java中常用的运算符

目录
文章目录隐藏
  1. 运算符定义
  2. Java 算术运算符
  3. Java 赋值运算符
  4. Java 比较运算符
  5. Java 逻辑运算符
  6. Java 条件运算符
  7. Java 中运算符的优先级

上一章节我们学习了《Java 变量与常量中的含义及应用》内容,相信你对 Java 的常量与变量的转换有一定的了解,接下来将为大家讲解 Java 中常用到的运算符。

运算符定义

运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。

Java 语言中常用的运算符可分为如下几种:

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符
  4. 逻辑运算符
  5. 条件运算符

我们试着通过一个简单的例子来看一下运算符的使用吧!

当计算两数之和时,需要使用加法运算符。在 Java 中,加法运算符使用“+”表示

public class Addition{
    public static void main(String[] args) {
		int a=12;
		int b=24;
		int sum = a+b;
		System.out.println("两数之和为:"+sum);
	}
}

运行结果:两数之和为:36

Java 算术运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样,主要用于进行基本的算术运算,如加法、减法、乘法、除法等。下表列出了所有的算术运算符。

表格中的实例假设整数变量 A 的值为 10,变量 B 的值为 20:

操作符 描述 例子
+ 加法 – 相加运算符两侧的值 A + B 等于 30
减法 – 左操作数减去右操作数 A – B 等于 -10
* 乘法 – 相乘操作符两侧的值 A * B 等于 200
/ 除法 – 左操作数除以右操作数 B / A 等于 2
取余 – 左操作数除以右操作数的余数 B%A 等于 0
++ 自增: 操作数的值增加 1 B++ 或 ++B 等于 21(区别详见下文)
自减: 操作数的值减少 1 B– 或 –B 等于 19(区别详见下文)

其中,++ 和 — 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴

实例

下面的简单示例程序演示了算术运算符。复制并粘贴下面的 Java 程序并保存为 Test.java 文件,然后编译并运行这个程序:

public class Test {

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     System.out.println("a + b = " + (a + b) );
     System.out.println("a - b = " + (a - b) );
     System.out.println("a * b = " + (a * b) );
     System.out.println("b / a = " + (b / a) );
     System.out.println("b % a = " + (b % a) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}

以上实例编译运行结果如下:

a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

自增自减运算符

1、自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。

实例

public class selfAddMinus{
    public static void main(String[] args){
        int a = 3;//定义一个变量;
        int b = ++a;//自增运算
        int c = 3;
        int d = --c;//自减运算
        System.out.println("进行自增运算后的值等于"+b);
        System.out.println("进行自减运算后的值等于"+d);
    }
}

运行结果为:

进行自增运算后的值等于 4
进行自减运算后的值等于 2

解析:

  1. int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为 b=4,a=4
  2. int d = –c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为 d=2,c=2

2、前缀自增自减法(++a,–a): 先进行自增或者自减运算,再进行表达式运算。

3、后缀自增自减法(a++,a–): 先进行表达式运算,再进行自增或者自减运算 实例:

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后 a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后 b="+b+",y="+y);
    }
}

运行结果:

自增运算符前缀运算后 a=6,x=12
自增运算符后缀运算后 b=6,y=10

注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8– 等写法都是错误滴!

PS:% 用来求余数,也称为”取模运算符“

Java 赋值运算符

赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。

下面是 Java 语言支持的赋值运算符:

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B 将把 A + B 得到的值赋给 C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A 等价于 C = C + A
– = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C – = A 等价于 C = C –
 A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A 等价于 C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A 等价于 C = C / A
%= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A 等价于 C = C%A
<< = 左移位赋值运算符 C << = 2 等价于 C = C << 2
>> = 右移位赋值运算符 C >> = 2 等价于 C = C >> 2
&= 按位与赋值运算符 C&= 2 等价于 C = C&2
^ = 按位异或赋值操作符 C ^ = 2 等价于 C = C ^ 2
| = 按位或赋值操作符 C | = 2 等价于 C = C | 2

*上表中粉色表格内容代表 Java 支持的常用赋值运算符

实例

public class Test {
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     int c = 0;
     c = a + b;
     System.out.println("c = a + b = " + c );
     c += a ;
     System.out.println("c += a  = " + c );
     c -= a ;
     System.out.println("c -= a = " + c );
     c *= a ;
     System.out.println("c *= a = " + c );
     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );
     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );
     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= a = " + c );
     c &= a ;
     System.out.println("c &= 2  = " + c );
     c ^= a ;
     System.out.println("c ^= a   = " + c );
     c |= a ;
     System.out.println("c |= a   = " + c );
  }
}

运行结果:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

Java 比较运算符

比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。

Java 中常用的比较运算符如下表所示:

运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)false
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) true
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)true
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)true
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)false
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)true

实例

下面的简单示例程序演示了关系运算符。复制并粘贴下面的 Java 程序并保存为 Test.java 文件,然后编译并运行这个程序:

public class Test {
 
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

运行结果:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

注意:

1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

Java 逻辑运算符

逻辑运算符主要用于进行逻辑运算。

下表列出了逻辑运算符的基本运算,假设布尔变量 A 为 true,变量 B 为 false

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为 false
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为 true
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为 true,则逻辑非运算符将得到 false。 !(A && B)为 true

实例

下面的简单示例程序演示了逻辑运算符。复制并粘贴下面的 Java 程序并保存为 Test.java 文件,然后编译并运行这个程序:

 

public class Test {
  public static void main(String[] args) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

编译运行结果如下:

a && b = false
a || b = true
!(a && b) = true

当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。

譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。

同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!

当使用与逻辑运算符时,在两个操作数都为 true 时,结果才为 true,但是当得到第一个操作为 false 时,其结果就必定是 false,这时候就不会再判断第二个操作了。

实例:

public class LuoJi{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        boolean b = (a<4)&&(a++<10);
        System.out.println("使用短路逻辑运算符的结果为"+b);
        System.out.println("a 的结果为"+a);
    }
}

运行结果为:

使用短路逻辑运算符的结果为 false
a 的结果为 5

Java 条件运算符

条件运算符( ? : )也称为 “三元运算符”。

语法形式:布尔表达式 ? 表达式 1 :表达式 2

运算过程:如果布尔表达式的值为 true ,则返回 表达式 1 的值,否则返回 表达式 2 的值

variable x = (expression) ? value if true : value if false

例如:

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );
   }
}

编译运行结果如下:

Value of b is : 30
Value of b is : 20

Java 中运算符的优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。

再如,x = 7 + 3 * 2;这里 x 得到 13,而不是 20,因为乘法运算符比加法运算符有较高的优先级,所以先计算 3 * 2 得到 6,然后再加 7。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

Java 中运算符的优先级

级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!

PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:

Java 中运算符的优先级

分析:小括号优先级最高,因此

1、 执行 a + 18 ,结果为 30

2、 执行( a + 18 ) % 4 取模,结果为 2

3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24

以上就是今天关于 Java 的常用运算符全部内容,下一章我们将为大家带来《Java 的流程控制语句》,敬请阅读!

「点点赞赏,手留余香」

2

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Java中常用的运算符

发表回复