目录作者简介:大家好呀!我是路遥叶子,大家可以叫我叶子哦!❣️
个人主页:【路遥叶子的博客】
博主信息:四季轮换叶,一路招摇胜!
专栏【小邹带你学Java】
【数据结构-Java语言描述】
希望大家多多支持一起进步呀!~❤️
若有帮助,还请【关注➕点赞➕收藏】,不行的话我再努力努力呀!
————————————————
⚡版权声明:本文由【路遥叶子】原创、在CSDN首发、需要转载请联系博主。
想寻找共同成长的小伙伴,请点击【Java全栈开发社区】
先来了解一下什么是运算符吧!
概念
Java中运算符的几大类
小白白—算术运算符
你知道算术运算符有那些吗?
注意事项,要注意避雷哦!
算术运算符-自增、自减
a++ 和++a的区别【重点】!
注意事项
大师傅—赋值运算符
关系运算符
注意事项
高教授—逻辑运算符
注意事项
三元运算符
小试牛刀,检验一下自己吧!
注意事项
运算符的优先级
嘿!朋友,运算符的运用你学会了吗讲解中有例题,赶紧试试检验检验自己吧!
如果文章对您有帮助,就拿起小手赶紧给博主点赞评论❤️收藏 一下吧~~~赶紧动起来,让我们一起加油学习吧!
先来了解一下什么是运算符吧!
概念
运算符:用来进行数据 计算/运算 的指令。
我们在学习变量时,使用了= + - * / 和( ),这都属于运算符,是Java用来进行运算的指令。
运算符:用来进行数据 计算/运算 的指令。
我们在学习变量时,使用了= + - * / 和( ),这都属于运算符,是Java用来进行运算的指令。
Java中运算符的几大类
- 算术运算符 (用来进行数学运算、字符串拼接)
- 赋值运算符 (用来向变量、常量保存数据)
- 关系运算符 (用来比较两个数之间的大小关系)
- 逻辑运算符 (用来进行“真” 或 “假” 的判断)
- 三元运算符
- 算术运算符 (用来进行数学运算、字符串拼接)
- 赋值运算符 (用来向变量、常量保存数据)
- 关系运算符 (用来比较两个数之间的大小关系)
- 逻辑运算符 (用来进行“真” 或 “假” 的判断)
- 三元运算符
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
小白白—算术运算符
算术运算符,主要用来进行数学运算,“+”较为特殊,也可用于字符串拼接
你知道算术运算符有那些吗?
| 运算符 | 运算规则 | 范例 | 结果 |
| + | 正号 | +3 | 3 |
| + | 加 | 2+3 | 5 |
| + | 连接字符串 | “中”+“国” | “中国” |
| - | 负号 | int a=3;-a | -3 |
| - | 减 | 3-1 | 2 |
| * | 乘 | 2*3 | 6 |
| / | 除 | 5/2 | 2 |
| % | 模运算符 整数作除法,取余数 (小数取余无意义) | 5%2 | 1 |
代码举例了解一下吧!
算术运算符:
package com.czxy.demo1;
public class Demo1 {
public static void main(String[] args) {
//1、 + 号
//数学加法
System.out.println(1+1); //2
int a = 1,b=2;
System.out.println(a+b); //3
//正号(几乎不用)
System.out.println(+100);//100
//拼接字符串
String aa = "中";
System.out.println(aa+"国");
//2、 - 号
//负号
System.out.println(-10);//-10
//数学减法
System.out.println(10-1);//9
//3、* / 号
// * 号 数学乘法
System.out.println(10*10);//100
// / 号 数学除法
System.out.println(10/10);//1
}
}
除法:
package com.czxy.demo1;
public class Demo2 {
public static void main(String[] args) {
//1、 / 除法
int num1 = 5;
// 进行除法时,若两端都是整数,结果也是整数。若可能有小数位,小数位直接被截断
System.out.println(num1/2);//2
double num2 = 5.0;
// 进行除法时,若两端有小数,结果就是小数。
System.out.println(num2/2);//2.5
System.out.println(num1/2.0);//2.5
//2、 % 模运算符 整数作除法 最后取余数
//经常用于 奇数和偶数判断
//奇数%2 余1
//偶数%2 余0
int aaa = 5;
System.out.println(aaa%2);//aaa除2 取余数 1
int bbb = 6;
System.out.println(bbb%2);//bbb除2 取余数 0
}
}
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
注意事项,要注意避雷哦!
1、任何数据和字符串直接进行“+”运算,都是在拼接字符串
1、任何数据和字符串直接进行“+”运算,都是在拼接字符串
2、除法原则:
运算两端,两端有小数,结果必为小数;
运算两端,两端均为整数,结果必为整数;有小数位,小数直接截掉。
3、0不能作为除数。
4、0不能作取余操作。
NaN (Not A Number) 不是一个数字
5、算术运算符可以对变量/常量进行运算。
你学会了吗?下面我们要升级了哦! 做好准备开始啦!
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
算术运算符-自增、自减
| 运算符 | 运算规则 | 范例 | 结果 |
| ++ | 自增 | int a=1; a++或++a | 2 |
| -- | 自减 | int b=3; a--或--a | 2 |
自增、自减算术运算符,用来进行原数字 +1 或 -1 的操作。仅操作数字类型变量
package com.czxy.demo1;
public class Demo3 {
public static void main(String[] args) {
//1、++ 自增
int aa = 10;
aa++;//让aa在原有值上+1
System.out.println(aa);
//2、-- 自减
int bb = 10;
bb--;//让bb在原有值上-1
System.out.println(bb);
double cc = 10.5;
cc++;//让cc在原有值上+1
System.out.println(cc);
}
}
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
a++ 和++a的区别【重点】!
1、单行使用时,前置或后置效果相同
1、单行使用时,前置或后置效果相同
2、混行使用时,要细致区分前置和后置
| 名称 | 格式 | 说明 |
| ++x | 前置自增 | 先自增,后取值使用 |
| x++ | 后置自增 | 先取值使用,后自增 |
| --x | 前置自减 | 先自减,后取值使用 |
| x-- | 后置自减 | 先取值使用,后自减 |
代码举例试试看!
package com.czxy.demo1;
public class Demo4 {
public static void main(String[] args) {
//1、后置
int a = 10;
System.out.println(a++);
System.out.println(a);
//2、前置
int b = 10;
System.out.println(++b);
System.out.println(b);
}
}
注意事项
1、++或--只能操作变量。
1、++或--只能操作变量。
2、++或--仅能操作数字类型变量。
❄️❄️这里要着重注意一下算术运算符的自增、自减哦!
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
大师傅—赋值运算符
| 运算符 | 运算规则 | 范例 | 结果 |
| = | 赋值 | int a=2 | 2 |
| += | 先加,后赋值 | int a=2,a+=2 | 4 |
| -= | 先减,后赋值 | int a=2,a-=2 | 0 |
| *= | 先乘,后赋值 | int a=2,a*=2 | 4 |
| /= | 先整除,后赋值 | int a=2,a/=2 | 1 |
| %= | 先取模,后赋值 | int a=2,a%=2 | 0 |
用来向变量、常量保存数据的运算符。
仅有 = 可以同时操作常量和变量。
其余赋值运算符,建议仅操作变量。
package com.czxy.demo2;
public class Demo1 {
public static void main(String[] args) {
//1、= 赋值:将原有值进行覆盖 操作
int a = 10;
a = 20;
a = 30;
System.out.println(a);//30
//2、 += 先加后赋值
int b = 10;
b+=10;// 相当于 b = b+10;
System.out.println(b);//20
//3、 -= *= /= %=
int c = 10;
c-=10;//0
int d = 10;
d*=10;//100
int e = 10;
e/=10;//1
int f = 9;
f%=2;//1
}
}
关系运算符
| 运算符 | 运算规则 | 范例 | 结果 | |
| == | 相等于 | 4==3 | false | |
| != | 不等于 | 4!=3 | true | |
| < | 小于 | 4<3 | false | |
| > | 大于 | 4>3 | true | |
| <= | 小于等于 | 4<=3 | false | |
| >= | 大于等于 | 4>=3 | true | |
用来比较两个数之间的大小关系,运算结果一定为布尔值。
运算原则:
- 运算式条件成立,结果为true
- 运算式条件不成立,结果为false
package com.czxy.demo3;
public class Demo1 {
public static void main(String[] args) {
System.out.println(1==1);//true
System.out.println(1==10);//false
System.out.println(1!=10);//true
System.out.println(1!=1);//false
System.out.println(1<10);//true
System.out.println(100<10);//false
System.out.println(100>10);//true
System.out.println(1>10);//false
System.out.println(100<=100);//true
System.out.println(100<=1);//false
System.out.println(100>=100);//true
System.out.println(1>=100);//false
}
}
注意事项
1、变量和常量都可参与关系运算。
2、变量或常量参与运算的执行步骤:
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
高教授—逻辑运算符
| 运算符 | 规则名 | 规则说明 | 范例 | 结果 |
| & | 与 | 有false为false 两侧操作数必须全为true,才会返回true。 否则返回false。 | false&true | false |
| | | 或 | 有true为true 两侧操作数只要有一个为true,就返回true。 全为false才返回false。 | false|true | true |
| ! | 非 | 返回相反值 | !true | false |
| ^ | 异或 | 两侧操作数不相同,返回true。 两侧操作数相同,返回false。 | true^false | true |
| && | 短路与 | 有false为false 两侧操作数必须全为true,才会返回true。 否则返回false。 | false&&true | false |
| || | 短路或 | 有true为true 两侧操作数只要有一个为true,就返回true。 全为false才返回false。 | false||true | true |
用来进行“真” 或 “假” 的运算和判断。
注:逻辑运算符只能对布尔值运算,运算结果一定是布尔值。
- 下面是运算符的运算规则【口诀】 && || ! ^
&& 同真则真,有假则假
|| 有真则真,同假则假
! 取相反
^ 不同为真,相同则假
代码举例试试吧!
package com.czxy.demo4;
public class Demo1 {
public static void main(String[] args) {
//1、 & 与
System.out.println(true&true);//true
System.out.println(false&true);//false
//2、 | 或
System.out.println(true|true);//true
System.out.println(false|true);//true
System.out.println(false|false);//false
//3、 ! 非
System.out.println(!true);//false
System.out.println(!false);//true
}
}
package com.czxy.demo4;
public class Demo2 {
public static void main(String[] args) {
//1、 &&
System.out.println(true && true);//true
System.out.println(false && true);//false
//2、 ||
System.out.println(false || false);//false
System.out.println(true || false);//true
}
}
package com.czxy.demo4;
public class Demo3 {
public static void main(String[] args) {
int a = 10;
System.out.println(true || ++a>10);
System.out.println(a);//10
int b = 10;
System.out.println(false && ++b>10);
System.out.println(b);//10
}
}
注意事项
短路:即只要能判断出结果,就直接返回结果。
运算符后面的判断就不会再执行。日常开发中全部使用短路操作。
逻辑运算符两端操作数可以是两个布尔值常量,也可以是两个布尔表达式。
(布尔表达式/条件表达式:即最终会返回布尔值的运算式)
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
三元运算符
三元运算符即三个操作数参与计算的运算符。
格式:
(布尔表达式)?结果1:结果2;
结果1或结果2可以是任何数据类型(基本数据类型,引用数据类型)
运算规则:
根据布尔表达式的值返回不同的结果:
布尔表达式为true, 返回 结果1
布尔表达式为false, 返回 结果2
int i = 10; int j = 20; System.out.println(i>j?"i的值大":"j的值大"); //打印结果为j的值大
package com.czxy.demo1;
public class Demo1 {
public static void main(String[] args) {
System.out.println(1==1?"等于":"不等于");//等于
System.out.println(1!=1?10.55:11.55);//11.55
}
}
注:三元运算符的结果必须被使用,否则Java报错。
package com.czxy.demo1;
public class Demo2 {
public static void main(String[] args) {
//1、结果被使用,无报错
System.out.println(1==1?"等于":"不等于");
boolean f1 = 1==1?true:false;//允许
//2、结果未被使用,就会报错
// 1==1?true:false;
}
}
小试牛刀,检验一下自己吧
1、写一个程序判断1到10的数是奇数还是偶数,打印出如下效果:
1 是奇数
2 是偶数
……
9 是奇数
10 是偶数
注:可以通过 模%运算取余来判断是奇数还是偶数。
1、写一个程序判断1到10的数是奇数还是偶数,打印出如下效果:
1 是奇数
2 是偶数
……
9 是奇数
10 是偶数
注:可以通过 模%运算取余来判断是奇数还是偶数。
方法一:直接取余判断输出结果 。
public static void main(String[] args) {
//1、定义一个变量,保存1~10的数
int num = 1;
//2、依次进行判断奇偶数,并展示结果
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
}
方法二:循环取余判断输出。
package com.czxy.demo1;
public class Demo3_2 {
public static void main(String[] args) {
//1、定义一个变量,保存1~10的数
int num = 1;
//2、依次进行判断奇偶数,并展示结果
for (int i = 1; i <=1000 ; i++) {
System.out.println(num+"t是"+((num++%2==0)?"偶数":"奇数"));
}
}
}
2、写程序比较两个整数 22和99的大小,并且将最大值和最小值分别保存不同的变量中。
展示效果:
public static void main(String[] args) {
//1、定义变量,max,min
int max,min;
//2、为max和min赋值
max = 99>22?99:22;//如果99比22大,保存99为最大值。
min = 99>22?22:99;//如果99比22大,保存22为最小值。
//3、展示控制台
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
}
注意事项
1、 常量和变量都可以参与运算。
2、运算符一般只操作基本数据类型,不操作引用数据类型(String除外)
运算符的优先级
在日常开发中,一行代码中很可能 出现多个不同的运算符。
比如,当赋值运算符 = 与 + 运算符都作用在一个变量上时,先计算加法,再计算赋值。
如:
int i,j; i = 10; //对i这个变量有两个运算符操作,分别为=与+。 j = i + 20; System.out.println(j); //最终打印结果为30。说明先计算+后计算=。
优先级:每个运算符都有一个顺序等级,来决定哪个运算符更为优先执行。
运算符运算的先后顺序,数字越小,优先级越高,计算顺序越靠前。例如:先做加减,后做赋值----int a=5+1;
❤️优先级相同的情况下,按照从左到右的顺序依次运算。例如:int a=5+1-1; 因为加和减优先级相同,就从左到右顺序执行。
❄️❄️ 优先级规则表:
| 优先级 | 描述 | 运算符 |
| 1 | 括号 | ()、[] |
| 2 | 正负号 | +、- |
| 3 | 自增自减,非 | ++、--、! |
| 4 | 乘除,取余 | *、/、% |
| 5 | 加减 | +、- |
| 6 | 移位运算 | <<、>>、>>> |
| 7 | 大小关系 | >、>=、<、<= |
| 8 | 相等关系 | ==、!= |
| 9 | 按位与 | & |
| 10 | 按位异或 | ^ |
| 11 | 按位或 | | |
| 12 | 逻辑与 | && |
| 13 | 逻辑或 | || |
| 14 | 条件运算 | ?: |
| 15 | 赋值运算 | =、+=、-=、*=、/=、%= |
| 16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
注(这里是个小技巧哦!):如果分不清优先级想让谁先运行,就加 括号( )
因为优先级规则表并不方便开发中的程序员随时使用,
所以开发中我们通常使用小括号 ( ) 来改变运算符优先级,使得程序按照程序员的预想来执行。



