运算符
- 1.算数运算符
- 1.1运算符和表达式
- 1.2算数运算符
- 1.3字符的“+”操作
- 1.4字符串的“+”操作
- 2.赋值运算符
- 2.1赋值运算符
- 3.自增自减运算符
- 3.1自增自减运算符
- 4.关系运算符
- 4.1关系运算符
- 5.逻辑运算符
- 5.1逻辑运算符概述
- 5.2逻辑运算符
- 5.3短路逻辑运算符
1.算数运算符
1.1运算符和表达式
- 运算符:对常量或者变量进行操作的符号。
- 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。 - 举例说明:
int a = 10;
int b = 20;
int c = a + b;
+:是运算符,并且是算数运算符
a + b:是表达式,由于+是运算符,所以这个表达式叫做算数表达式
1.2算数运算符
- | 加 | 同数学“+”
- | 减 | 同数学“-”
- | 乘 | 同数学“x”
/ | 除 | 同数学“÷”
% | 取余 | 获取的是两个数据做除法的余数
注意事项:
/ 和 % 的区别:两个数据做除法,/ 取结果的商,% 取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算,如:
6/4得到结果为1
6.0/4得到结果为1.5
1.3字符的“+”操作
public class Demo {
public static void main(String[] args) {
//定义两个变量
int i = 10;
char c = 'A';//'A'的值为65
System.out.println(i + c);
}
}
输出结果为:75
拿字符再计算机底层对应的数值来进行计算的(即ASCII码)
算数表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
- byte类型,short类型和char类型讲被提升到int类型
- 整个表达式的类型自动提升到表达式中最高等级操作数相同的类型
等级顺序:byte,short,char int long float
1.4字符串的“+”操作
当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算
- “cjn”+5+20
结果为cjn520 - 5+515+“cjn”
结果为520cjn
2.赋值运算符
2.1赋值运算符
符号 |
作用 |
说明 |
= |
赋值 |
a = 10,将10赋值给变量a |
+= |
加后赋值 |
a += b,将a+b的值给a |
-= |
减后赋值 |
a -=b,将a-b的值给a |
*= |
乘后赋值 |
a = b,将ab的值给a |
/= |
除后赋值 |
a /= b,将a/b的值给a |
%= |
取余后赋值 |
a %= b,将a÷b的余数给a |
注意事项: |
||
扩展的赋值运算符隐含了强制类型转换,如: |
short s = 10;
s += 20;
//s = (short)(s + 20);
3.自增自减运算符
3.1自增自减运算符
符号 |
作用 |
说明 |
++ |
自增 |
变量的值加1 |
– |
自减 |
变量的值减1 |
注意事项: |
- ++和–既可以放在变量的后面,也可以放在变量的前面
- 单独使用时,++和–无论是放在变量的前面还是后面结果都是一样的
- 参与操作的时候,如果放在变量的后面,先拿变量参与操作,后拿变量做++或–
参与操作的时候,如果放在变量的前面,先拿变量做++或–,后拿变量参与操作
int i = 10;
int j = i++;
System.out.println("i=" + i);
System.out.println("j=" + j);
输出结果为:
i=11
j=10
int i = 10;
int j = ++i;
System.out.println("i=" + i);
System.out.println("j=" + j);
输出结果为:
i=11
j=11
一般时候都是单独使用的
4.关系运算符
4.1关系运算符
符号 |
说明 |
== |
a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= |
a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
| a>b,判断a是否大于b,成立为true,不成立为false
< | a<b, 判断a是否小于b,成立为true,不成立为false
= | a>=b,判断a是否大于等于b,成立为true,不成立为false
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false
注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false
千万不要把“==”误写成“=”
5.逻辑运算符
5.1逻辑运算符概述
在数学中,数据x大于3,小于6,可以表示为:3<x<6
在java中,需要将上述式子先进行拆分,再进行合并
- 拆分为:x>3和x<6
- 合并为:x>3&&x<6
&&就是一个逻辑运算符
逻辑运算符就是用来连接关系表达式的运算符
逻辑运算符也可以直接连接布尔类型的常量或者变量
5.2逻辑运算符
符号 |
作用 |
说明 |
& |
逻辑与 |
a&b,a和b都是true,结果为true,否则为false |
| |
逻辑或 |
a|b,a和b都是false,结果为false,否则为true |
^ |
逻辑异或 |
a^b,a和b结果不同为true,相同为false |
! |
逻辑非 |
!a,结果和a的结果正好相反 |
5.3短路逻辑运算符
符号 |
作用 |
说明 |
&& |
短路与 |
作用和&相同,但是有短路效果 |
|| |
短路或 |
作用和|相同,但是又短路效果 |
int i = 10;
int j = 20;
System.out.println((i++ > 100) & (j++ > 100));//false & false
System.out.println("i="+i);
System.out.println("j="+j);
输出结果为:
false
i=11
j=21
int i = 10;
int j = 20;
System.out.println((i++ > 100) && (j++ > 100));//false && false
System.out.println("i="+i);
System.out.println("j="+j);
输出结果为:
false
i=11
j=20
注意事项:
- 逻辑与&,无论左边真假,右边都要执行
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行 - 逻辑或|,无论左边真假,右边都要执行
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行
最常用的逻辑运算符:&&,||,!