这是我们JAVA二最后一块部分,明天我们就会更新Java三循环语句了,请大家敬请期待
文章目录
一、运算符是什么
二、算术运算符
三 赋值运算符
四 比较(关系)运算符
五 逻辑运算符
六 位运算符
七 条件运算符
八 运算符优先级
前言
这一章我们来讲讲运算符,这一块是我们必须要掌握到,接下来让我们看看吧!
提示:以下是本篇文章正文内容,下面案例可供参考
一、运算符是什么
运算符是一种特殊的符号,用来表示数据的运算,赋值和比较
运算符的分类有很多种,你了解多少呢?
运算符的分类:
- 算术运算符:+, - ,* ,/ ,%, ++,-- 7个
- 赋值运算符:=,+=,-=,*=,%=,/=,>>=,>>>=,<<=,&=,|=,^=
- 比较运算符,关系运算符:>,>=,<,<=,==,!=
- 逻辑运算符:&,|,^,!,&&,||
- 位运算符:&,|,^,~,<<,>>,>>>
- 条件运算符:条件表达式
- Lambda运算符:->
按操作数个数分为:
- 一元运算符
- 二元运算符
- 三元运算符
二、算术运算符
1.基础
运算符 | 运算 | 范例 | 结构 |
+ | 正号 | +3 | 3 |
- | 负号 | a=3;-a | -3 |
+ | 加 | 3+3 | 6 |
- | 减 | 4-3 | 1 |
* | 乘 | 3*4 | 12 |
/ | 除 | 3/3 | 1 |
% | 取余 | 6%4 | 2 |
++ | 自增(前)先运算后取值a=2,b=++2 自减(后)先取值后运算a=2,b=2++ |
a=2,b=++a a=2,b=a++ |
a=3,b=3 a=3,b=2 |
-- | 自增(前)先运算后取值 自减(后)先取值后运算 |
a=2,b=--a a=2,b=a-- |
a=1,b=1 a=1,b=2 |
+ | 字符串相连 | “he”+“llow” | “hellow” |
加减乘除模例子:
public class yunsuan{
public static void main(String[] args){
int a = 3;
int b = 4;
System.out.println(a+b);//7
System.out.println(a-b);//-1
System.out.println(a*b);//12
System.out.println(a/b);//0
System.out.println(a%b);//3
System.out.println(5%2);//1
System.out.println(5%-2);//1
System.out.println(-5%2);//-1
System.out.println(-5%-2);//-1
//商*除数+余数=被除数
//5%-2 ==>商=-2 余数=1 (-2)*(-2)+1=5
}
}
+ 的两种用法
1.俩边都为数值的话,+代表相加
2.对于两边至少有一边是字符串的话,代表拼接
public class yunsuan2 {
public static void main(String[] args) {
String str1 = "Hello";
System.out.println(str1); // Hello
System.out.println("Hello" + "World"); // HelloWorld
String str2 = "Java";
System.out.println(str2 + 520); // Java520
System.out.println(str2 + 5 + 20); // Java520
}
}
自加自减运算
public class yunsuan3 {
public static void main(String[] args) {
int a = 3; //定义一个变量int
a++;
System.out.println(a); //像这样无论是++a,还是a++结果都一样,都是4
}
}
自加自减运算复合运算
public class ArithmeticTest4 {
public static void main(String[] args) {
int x = 3;
int y = x++;
//x++的时候,y是4,x是3,当++x的时候,有x是4,y也是4
System.out.println(x);
System.out.println(y);
System.out.println("==========");
int z = 5;
//System.out.println(++z);// 输出结果是6,z 的值也是6
System.out.println(z++);// 输出结果是5,z 的值是6
System.out.println(z);
}
}
三 赋值运算符
符号 =
- 当“=”两侧数据类型不一样的时候,可以使用自动类型转换或使用强制类型转换原则处理
- 支持连续赋值
扩展符号:+=,-=,*=,/=,%=
算符 | 符号解释 |
+= | 符号左边的值和右边的值进行相加操作,最后将结果赋值给左边的变量 |
-= | 符号左边的值和右边的值进行相减操作,最后将结果赋值给左边的变量 |
*= | 符号左边的值和右边的值进行相乘操作,最后将结果赋值给左边的变量 |
/= | 符号左边的值和右边的值进行相除操作,最后将结果赋值给左边的变量 |
%= | 符号左边的值和右边的值进行取余操作,最后将结果赋值给左边的变量 |
public class fuzhiyunsuna{
public static void main (String[] args){
int i1 = 10; //定义int
long l1 = i1; //int升为long类型,自动转化
byte bb1 = (byte)i1;//强制转化类型,变为int
int i2 =i1;
int a1 = 10;
int b1 = 10;//分别赋值
int a2,b2;
a2 = b2 = 10;//连续赋值
int a3 = 10,b3 = 20;
int m1 = 10;
m1 += 5;//相当于m=m+5 使用m=15
System.out.println(m1);
short s2 = 10;//short s2=s2+2
// s2 = (short)(s2+2); int类型赋值给short,有损精度
System.out.println(s2);
}
}
四 比较(关系)运算符
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
instanceof | 检查是否是类的对象 | “Hellow”instanceof String | true |
- 比较运算符的结果都为boolean型,要不就是对的,要不就是错的
- >,>=,<,<=:适用于基本数据类型,也且只适用基本数据类型
- ==,!=:适用于基本数据类型,和引用数据类型
class CompareTest {
public static void main(String[] args) {
int i1 = 10;
int i2 = 20;
System.out.println(i1 == i2);//false
System.out.println(i1 != i2);//true
System.out.println(i1 >= i2);//false
int m = 10;
int n = 20;
System.out.println(m == n);//false
System.out.println(m = n);//20
boolean b1 = false;
boolean b2 = true;
System.out.println(b1 == b2);//false
System.out.println(b1 = b2);//true
}
}
区分好“=”和“==”的区别
五 逻辑运算符
a | b | a&b | a&&b | a|b | a||b | !a | a^b |
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
逻辑运算符,操作的都是 boolean类型的变量或常量,而且运算得结果也是 boolean类 型的值。
1.运算符说明:
& 和 &&:表示"且"关系,当符号左右两边布尔值都是 true时,结果才能为 true。否则,为 false
| 和 || :表示"或"关系,当符号两边布尔值有一边为 true时,结果为true。当两边都为 false 时,结果为 false
! :表示"非"关系,当变量布尔值为 true时,结果为 false。当变量布尔值为 false时,结果为 true。
^ :当符号左右两边布尔值不同时,结果为 true。当两边布尔值相同时,结果为 false。
区分“&”和“&&”:
相同点:如果符号左边是 true,则二者都执行符号右边的操作
不同点:& : 如果符号左边是 false,则继续执行符号右边的操作
&& :如果符号左边是 false,则不再继续执行符号右边的操作
建议:开发中,推荐使用 &&
区分“|”和“||”:
相同点:如果符号左边是 false,则二者都执行符号右边的操作
不同点:| : 如果符号左边是 true,则继续执行符号右边的操作
|| :如果符号左边是 true,则不再继续执行符号右边的操作
建议:开发中,推荐使用 ||
六 位运算符
运算符 | 运算 | 范例 |
<< | 左移 | 3<<2 =12 - 3*2*2=12 |
>> | 右移 | 3>>1 = 1 - 3/2=1 |
>>> | 无符号右移 | 3>>>1 = 1 - 3/1=1 |
& | 与运算 | 6&3=2 |
| | 或运算 | 6|3=7 |
^ | 异或运算 | 6^3=5 |
~ | 取反运算 | ~6=-7 |
七 条件运算符
(条件表达式)?
表达式1
表达式2
条件表达式都是boolean类型的结果,根据boolean的值选择表达式1或表达式2
八 运算符优先级
优先级 | 运算符说明 | Java运算符 |
1 | 括号 | (),[],{} |
2 | 正负号 | +,- |
3 | 单位运算符 | ++,--,~,! |
4 | 乘法除法,求余 | *,/,% |
5 | 加减法 | +,- |
6 | 移位运算符 | <<,>>,>>> |
7 | 关系运算符 | <,<=,>,>=,instanceof |
8 | 等价运算法 | ==,!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 条件与 | && |
13 | 条件或 | || |
14 | 三位运算符 | ?; |
15 | 赋值运算符 | =,+=,-=,*=,/=,%= |
16 | 位赋值运算符 | &=,|=,<<=,>>=,>>>= |
因为优先级太多,记忆起来也麻烦,使用没有必要记住,我们习惯性的用()来控制表达式的执行顺序,不要写的过于复杂,这样只会让我们更难受
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅运算符使用,这就是我们的第二部分,我分为4部分写的,大家可以关注或者订阅,这样方便大家阅读,相信大家也不容易,我们的Java 三,将会讲循环语句,Java 四会讲到数组,等等一系列,希望大家多多支持,谢谢大家,爱你们呦!