栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的运算符

Java 语言支持如下运算符。
  • 算术运算符:+、-、*、/、%、++、- -。
  • 关系运算符:>、<、>=、<=、= = 、!=。
  • 赋值运算符:=、+=、-=、*=、/=等。
  • 逻辑运算符:!、&&、||等。
  • 位运算符:~、&、|、^、>>、<<、>>>(无符号右移)。

算术运算符

从参与运算的因子的数量,可以将算术运算符分为以下 3 类。

  • 单目运算符:+(取正)、-(取负)、++(自增 1)、–(自减 1)。
  • 双目运算符:+、-、*、/、%(取余)。
  • 三目运算符:(表达式 1)?(表达式 2):(表达式 3),当表达式 1 的结果为真时,整个运算的结果为表达式 2,否则为表达式 3,该运算符是 Java 语言唯一一个三目运算符,常被使用,需要掌握。

通过下面的程序,来重点学习++、–、%和三目运算符这四个算术运算符。

 class ArithmeticOpr {
    public static void main(String[] args) {
        int i1 = 10, i2 = 20;
        int i = (i2++);        //++在i2后,故先运算(赋值)再自增
        System.out.print("i = " + i);
        System.out.println(" i2 = " + i2);
        i = (++i2);            //++在i2前,故先自增再运算(赋值)
        System.out.print("i = " + i);
        System.out.println(" i2 = " + i2);
        i = (--i1);            //--在i1前,故先自减再运算(赋值)
        System.out.print("i = " + i);
        System.out.println(" i1 = " + i1);
        i = (i1--);            //--在i1后,故先运算(赋值)再自减
        System.out.print("i = " + i);
        System.out.println(" i1 = " + i1);

        System.out.println("10 % 3 = " + 10 % 3);
        System.out.println("20 % 3 = " + 20 % 3);

        int rst = (20 % 3) > 1 ? -10 : 10;
        System.out.println("(20 % 3)>1 ? -10 : 10 = " + rst);
    }
}

运行结果如下:

i = 20 i2 = 21
i = 22 i2 = 22
i = 9 i1 = 9
i = 9 i1 = 8
10 % 3 = 1
20 % 3 = 2
(20 % 3)>1 ? -10 : 10 = -10

通过这个例子可以看出,++ 和 - - 这两个运算符放在操作数前或后,决定着是先自增(或自减)再运算,还是先运算再自增(或自减)。
下面,再通过一个示例介绍变量和运算符的使用。

假设 Java 工程师的月薪按以下方式计算。

Java 工程师月薪=月底薪+月实际绩效+月餐补-月保险

其中:

  1. 月底薪为固定值。
  2. 月实际绩效=月绩效基数(月底薪 ×25%)× 月工作完成分数(最小值为 0,最大值为 150)/100。
  3. 月餐补=月实际工作天数 ×15。
  4. 月保险为固定值。

计算 Java 工程师月薪时,用户输入月底薪、月工作完成分数(最小值为 0,最大值为 150)、月实际工作天数和月保险 4 个值后,就可以计算出 Java 工程师月薪。详见以下程序。

import java.util.Scanner;

class CalSalary {
    public static void main(String[] args) {
        //Java工程师月薪
        double engSalary = 0.0;
        //底薪
        int basSalary = 3000;
        //月工作完成分数(最小值为0,最大值为150)
        int comResult = 100;
        //月实际工作天数
        double workDay = 22;
        //月应扣保险数
        double insurance = 3000 * 0.105;
        //从控制台获取输入的对象
        Scanner input = new Scanner(System.in);
        System.out.print("请输入Java工程师底薪:");
        //从控制台获取输入—底薪,赋值给basSalary
        basSalary = input.nextInt();
        System.out.print("请输入Java工程师月工作完成分数(最小值为0,最大值为150):");
        //从控制台获取输入—月工作完成分数,赋值给comResult
        comResult = input.nextInt();
        System.out.print("请输入Java工程师月实际工作天数:");
        //从控制台获取输入—月实际工作天数,赋值给workDay
        workDay = input.nextDouble();
        System.out.print("请输入Java工程师月应扣保险数:");
        //从控制台获取输入—月应扣保险数,赋值给insurance
        insurance = input.nextDouble();

        
        engSalary = basSalary + basSalary * 0.25 * comResult / 100
                  + 15 * workDay - insurance;
        System.out.println("Java工程师月薪为:" + engSalary);
    }
}

结果如下:

	请输入Java工程师底薪:6000
	请输入Java工程师月工作完成分数(最小值为0,最大值为150):105
	请输入Java工程师月实际工作天数:21
	请输入Java工程师月应扣保险数:748
	
Java工程师月薪为:7142.0

逻辑运算符

关系运算符和赋值运算符比较简单,这里不展开介绍。需要注意的是,关系运算符“ == ”和赋值运算符“ = ”看起来比较类似,但含义完全不同,“ == ”用于判断两边是否相等,而“ = ”是将右边的值赋给左边。此外,关系运算符的比较结果是布尔类型,例如。

boolean flag = 3 > 2 ; //比较结果:true

+=、-=等是扩展的赋值运算符,x += y 等价于 x = x + y,程序员在实际的编程过程中,为了方便阅读,尽量不要使用这种扩展的赋值运算符。

接下来重点介绍逻辑运算符和位运算符。在 Java 语言中有 3 种逻辑运算符,它们是逻辑非(用符号“!”表示)、逻辑与(用符号“&&”表示)和逻辑或(用符号“||”表示)。

逻辑非表示取反,其逻辑关系值表如下表所示。

A! A
truefalse
falsetrue

逻辑与的运算规则为:有一个运算数为假,其值为假,两个运算数都为真,其值为真。逻辑与的关系值表如下表所示。

ABA && B
falsefalsefalse
truefalsefalse
falsetruefalse
truetruetrue

逻辑或的运算规则为:有一个运算数为真,其值为真,两个运算数都为假,其值为假。逻辑或的关系值表如下表所示。

ABA or B
falsefalsefalse
truefalsetrue
falsetruetrue
truetruetrue

位运算符

在计算机中,所有的信息都是以二进制形式存储的。可以用位运算符对整数的二进制位进行操作。位运算符主要包括按位非(用符号“~”表示)、按位与(用符号“&”表示)、按位或(用符号“|”表示)、按位异或(用符号“^”表示)和移位运算符(用符号“<<”、“>>”、“>>>”表示)。

在企业面试 Java 工程师的时候,也常会问到“&&”和“&”以及“||”与“|”的区别,通过下面的学习,可以清楚地理解逻辑运算符和位运算符的区别。

按位非表示按位取反,其关系值表如下表所示。
按位非表示按位取反,其关系值表如下表所示。

A~ A
10
01

按位与是逐位逻辑与。按位与的关系值表如下表所示。

ABA & B
111
100
010
000

按位或是逐位逻辑或。按位或的关系值表如下表所示。

ABA or B
111
011
101
000

按位异或是当两个运算位不同时(重点在“异”字),结果为 1,否则为 0。按位异或的关系值表如下表所示。

ABA ^ B
110
011
101
000
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683589.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号