Java运算符
创始人
2024-06-02 03:44:51
0

在这里插入图片描述

文章目录

  • 运算符分类
    • 算术运算符
    • 赋值运算符
    • 比较(关系)运算符
    • 逻辑运算符
    • 条件运算符
  • 运算符优先级

运算符分类

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

运算符的分类:
按照功能分为:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算
符、条件运算符、Lambda 运算符

分类运算符
算术运算符(7 个)+、-、*、/、%、++、–
赋值运算符(12 个)=、+=、-=、*=、/=、%=、>>=、<<=、>>>=
&=、=、^=等
比较(或关系)运算符>、>=、<、<=、==、!= (6个)
逻辑运算符(6 个)&、|、||、!、&&、 ^
位运算符(7 个)&、|、^、~、<<、>>、>>>
条件运算符(1 个)(条件表达式)?结果 1:结果 2
Lambda 运算符“转到”或者 “成为”

按照操作数个数分为:
一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符 (三目运算符)

分类运算符
一元运算符(单目运算符)正号(+)、负号(-)、++、–、!、~
二元运算符(双目运算符)除了一元和三元运算符剩下的都是二元运算符
三元运算符 (三目运算符)(条件表达式)?结果 1:结果 2

算术运算符

算术运算符

++变量变量++

案例1、


public class hello {public static void main(String[] args) {int a = 10;int b = a++;System.out.println(a);System.out.println(b);System.out.println("==========");int c = 20;int d = 20;System.out.println(++c);// 21System.out.println(c); // 21System.out.println(d++); // 20System.out.println(d); // 21}
}

案例2、


public class hello {public static void main(String[] args) {int a = 10;int b = 20;int c = a++;System.out.print("c=" + c); // c=10System.out.println("a=" + a);// a=11c = ++a; // a=12System.out.print("c=" + c);// c=12System.out.println("a=" + a);// a=12c = b--;// c=20System.out.print("c=" + c);// c=20System.out.println("b=" + b);// b=19c = --b; // c=18System.out.print("c=" + c);// c=18System.out.println("b=" + b);// b=18}
}

赋值运算符

符号: =
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。

扩展赋值运算符: +=、 -=、*=、 /=、%=

算符符号解释
+=将符号左边的值和右边的值进行相加操作,最后将结果赋值给左边的变量
-=将符号左边的值和右边的值进行相减操作,最后将结果赋值给左边的变量
*=将符号左边的值和右边的值进行相乘操作,最后将结果赋值给左边的变量
/=将符号左边的值和右边的值进行相除操作,最后将结果赋值给左边的变量
%=将符号左边的值和右边的值进行取余操作,最后将结果赋值给左边的变量
int i = 1;i *= 0.1;System.out.println(i);//0i++;System.out.println(i);//1int m = 2;int n = 3;n *= m++; //n = n * m++;System.out.println("m=" + m);//3System.out.println("n=" + n);//6int n = 10;n += (n++) + (++n); //n = n + (n++) + (++n)System.out.println(n);//32

比较(关系)运算符

比较运算符的结果都是 boolean 型,也就是要么是 true,要么是 false

在这里插入图片描述

逻辑运算符

逻辑运算符,操作的都是 boolean 类型的变量或常量,而且运算得结果也是 boolean 类型的值。

在这里插入图片描述

  • & 和 &&:表示"且"关系,当符号左右两边布尔值都是 true 时,结果才能为 true。否则,为 false
int a = 1;int b = 2;int c = 3;System.out.println((a > b) & (a > c)); //falseSystem.out.println((a > b) & (a < c)); //falseSystem.out.println((a < b) & (a > c)); //false
  • | 和 || :表示"或"关系,当符号两边布尔值有一边为 true 时,结果为true。当两边都为 false时,结果为 false
System.out.println((a > b) | (a > c)); //falseSystem.out.println((a > b) | (a < c)); //trueSystem.out.println((a < b) | (a > c)); //trueSystem.out.println((a < b) | (a < c)); //true
  • ! :表示"非"关系,当变量布尔值为 true 时,结果为 false。当变量布尔值为 false 时,结果为 true
System.out.println(!false);
  • ^ :当符号左右两边布尔值不同时,结果为 true。当两边布尔值相同时,结果为 false
System.out.println((a > b) ^ (a > c)); //falseSystem.out.println((a > b) ^ (a < c)); //trueSystem.out.println((a < b) ^ (a > c)); //trueSystem.out.println((a < b) ^ (a < c)); //false

“&” 和 “&&” 区别 :

  • 相同点:如果符号左边是 true,则二者都执行符号右边的操作
  • 不同点:& : 如果符号左边是 false,则继续执行符号右边的操作
  • && :如果符号左边是 false,则不再继续执行符号右边的操作
  • 建议:开发中,推荐使用 &&
        int a = 1;int b = 1;if (a++ == 2 & ++b == 2) {a = 7;}System.out.println("a=" + a + ",b=" + b); //2 2int a = 1, b = 1;if (a++ == 2 && ++b == 2) {a = 7;}System.out.println("a=" + a + ",b=" + b); //2 1

“|”和“||” 区别 :

  • 相同点:如果符号左边是 false,则二者都执行符号右边的操作
  • 不同点:| : 如果符号左边是 true,则继续执行符号右边的操作
  • || :如果符号左边是 true,则不再继续执行符号右边的操作
  • 建议:开发中,推荐使用 ||
int x = 1,y = 1;if(x++==1 | ++y==1){x =7;}System.out.println("x="+x+",y="+y); // 7 2int x = 1,y = 1;if(x++==1 || ++y==1){x =7;}System.out.println("x="+x+",y="+y); //7 1

条件运算符

条件运算符格式:
(条件表达式)? 表达式 1 : 表达式 2

int n1 = 1;int n2 = 2;int n3 = 3;int tempMax = (n1 > n2)? n1:n2;int finalMax = (tempMax > n3)? tempMax : n3;System.out.println("三个数中最大值为:" + finalMax);

运算符优先级

优先级运算符说明Java 运算符
1括号()、[]、{}
2正负号+、-
3单元运算符++、–、~、!
4乘法、除法、求余*、/、%
5加法、减法+、-
6移位运算符<<、>>、>>>
7关系运算符<、<=、>=、>、instanceof
8等价运算符==、!=
9按位与&
10按位异或^
11按位或|
12条件与&&
13条件或
14三元运算符? :
15赋值运算符=、+=、-=、*=、/=、%=
16位赋值运算符&=、|=、<<=、>>=、>>>=
  • 不要过多的依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序
  • 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...