运算符
1.1运算符的基本概念:
- =和+都是运算符。
- 1+1称之为表达式,最后要有一个运算结果。
- int num=1+1;这一条语句要用";"作为一条语句的结束。
- 运算符两边的数称之为操作数。将运算符左右的一个操作数称为单目/单元,两个操作数称为双目/双元。
1.2运算符的分类:
- 算数运算符:+ - * / % ++ –
- 关系运算符:> < == <= >= != instanceOf
- 逻辑运算符:& | ! ^ && ||
- 赋值运算符: =
- 拓展运算符: += -= *= /= %= >>= <<= ^+ !=
- 位运算符:& | ^ >> << <<< !
- 条件运算符: ?:
i.赋值运算符
=号将运算符右侧的结果赋值给左边的变量进行存储。
运算时自右向左进行的
int num=10;
ii.算数运算符
+
public class Demo05 {
public static void main(String[] args) {
//正号
int num=+5;
System.out.println(num);
//加法运算符
num=2+3;
System.out.println(num);
//连接符
System.out.println("1+1="+1+1);
}
}
注意事项:
- 正号:在数值前面编写
- 加法运算:保证+号左右两边都是一个具体的值。
- 连接符:+号左右两边有一个操作数为字符串类型时,+号就是连接符,它会把左右两边的操作数都当成字符串,进行拼接,所以+号为拼接符的时候最好用括号先计算运行结果。
-
public class Demo05 {
public static void main(String[] args) {
//减法运算符
int num=3-2;
System.out.println(num);
//负号
num=-5;
System.out.println(num);
}
}
* / %
public class Demo05 {
public static void main(String[] args) {
//乘法运算
int num=1*1;
System.out.println(num);
//除法运算
num=2/1;
System.out.println(num);
//取余
num=3%2;
System.out.println(num);
}
}
++ –
- ++ --都是单目运算符
- ++ --的区别和联系
- 联系
- ++是在原来变量基础上+1。
- –是在原来变量基础上-1。
- 当++和–是单独一条语句时,++ --是单目运算符,不管放前面还是放后面都是自身加一,自身减1。
- 区别
- num++ => num++ 最后有一个结果 num本身存在一个结果;num++ 表达式的值和num是有关系 num++ 表达式的值= num的值
- ++num不是单独一条语句是,前加,先自增 再运算。
- num++不是单独一条语句时,后加,先运算 再自增
- –num不是单独一条语句是,前减,先自减 再运算。
- num–不是单独一条语句时,后加,先运算 再自减 。
- 联系
iii.扩展运算符
其实就是算数运算符和位运算符加上赋值运算符的结合体
public class Demo05 {
public static void main(String[] args) {
//计算两个学生的分数之和
int a=80;
int b=70;
int sum=0;
sum=sum+a;
sum=sum+b;
System.out.println(sum);
int sum1=0;
sum1+=a;
sum1+=b;
System.out.println(sum1);
}
}
扩展运算符的优缺点
- 优点:
- 提高了编译速度
- 提高了编写效率
- 自动强制类型转换(即是有点也是缺点)
- 缺点:
- 不利于阅读
iv.关系运算符
< == <= >= != instanceOf
- 注意事项:
- 最后的结果是一个boolean类型的值 true和false
- != == 既可以比较基本数据类型 也可以比较引用类型
< > >= <= 只能比较基本数据类型 (布尔类型除外)
v.逻辑运算符
逻辑运算符中包括了(& | ! ^ && ||),逻辑运算符左右变量的操作数有且只能是boolean类型的值。当
&、|、左右两边的操作数不是boolean类型,是数值型时要注意,此时&、|、不是逻辑运算符而是
位运算符。
-
逻辑运算符最后的结果:
-
&和&&是两边都为true才为true。
-
|和||是两边只要有一个true就为true。
-
^是两边相同为false,两边不同为true。
-
!为取反。
-
&&和&的联系和区别以及|和||的联系和区别。
- 联系
- &&和&都是两边都为true才为true。
- ||和|都是两边有true就为true。
- 区别
- &&是当第一个操作数为false,将不会看第二个操作数,直接为false。
- ||是当第一个操作数为true时,将不会看第二个操作数,直接为true。
- 联系
vi.条件运算符
?:
- 是java中的唯一一个三目运算符。
- <表达式1>?<表达式2>:<表达式三>
- 在运算中,首先对第一个表达式进行检验,如果为真则返回表达式二的值,如果为假,则返回表达式三的值。