第1章 Java中的运算符
1.1 运算符的分类
Ø 算术运算符: + 、 - 、 * 、 / 、 % 、 ++ 、 --
Ø 赋值运算符: = 、 (+= 、 -= 、 *= 、 /= 、 %=)
Ø 比较(关系)运算符: > 、 < 、 >= 、 <= 、 == 、 !=
Ø 逻辑运算符: ! 、 & 、 | 、 ^ 、 && 、 ||
Ø 位运算符(了解): & 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>
Ø 三目运算符(三元运算符): 表达式 ? true : false;
1.1.1 什么是运算符
对常量和变量进行算术运算的符号
1.2 算术运算符
1.2.1 常见的算术运算符
最常见的:+ 、 - 、 * 、 / 、 %
示例:
/ : 除得的结果,只会留商,不要余数
% : 除得的结果,只要余数,如果除数比被除数小,所得到的余数就是除数本身。
整数相除,提到的结果是整数,如果要获取到小数,需要把结果转换成浮点型。
1.2.1.1 ++ -- 运算符的作用
在Java中,++叫做自增,--叫做自减。
它们的应用,有两种情况:
1. 单独使用,没有区别,都是自增或者自减
2. 如果参与运算,此时的自增或者自减就有区别,先看示例:
a = 5;
b = 7;
a = 6 7 7 7
运算:++a + a++ + ++b - b++ = 6 + 7 + 8 - 9 = 12
b = 7 7 8 9
1.2.1.2 练习
1. 示例1
++ 和 --特性之2:
如果参与到运算中,看++ 和 --所在的位置。如果在数据前面,表示先自增,然后再把结果给对方。
如果++ 和--在数据的后面,表示先把原有的数据给对方,自己再进行++或者--
a = b++; a = 10 b = 11
c = --a; a = 9 c = 9
b = ++a; a = 10 b = 10
a = c--; a = 9 c = 8
a = 9,b = 10,c = 8
示例2:
x = 5 6 6
int y = (x++)+(++x)+(x*10);
y = 4 + 6 + 60 = 70
示例3:
d++; 是没有问题的。
d = d + 1; 出问题了。d是byte类型,在计算的时候,会提升为int,计算的结果还是int类型,把int给byte,肯定会挂掉。
d++; --> d = d + 1;
为什么自增或自减不会报错??
这是因为,++和—它的特性之3,自带数据类型强制转换的技能(简称强转)。
1.3 赋值运算符
常见的赋值运算符:=
什么是赋值??
把 = 号右边的数据,给左边的变量,这人过程,就叫做赋值。
特殊的赋值运算符:
+= 、 -= 、 *= 、 /= 、 %=
示例:
a += ++b; --》 a = a + ++b;
在运算的时候,byte同样会变成int类型,为什么不报错???
特殊的赋值运算符,同样也有自带【强转】的技能。
除此之外,特殊的赋值运算符,执行过程是,先把运算符左边的变量对应的值拿出来,现右边的数据进行运算,所到的结果,再赋值给左边的变量。
a += ++b; --》 a = a + ++b; --> a = 10 + (10 + 1) --> a = 21
1.4 关系运算符
又称:比较运算符,条件运算符
==,!=,>,>=,
注意事项:
* 无论你的操作是简单还是复杂,结果是boolean类型。(true,flase)
操作:就是数据与数据的比较
* "=="不能写成"="。
主要使用关系运算符来做一些逻辑上的判断
示例:
(b > c) --> 在运算中,是可以使用括号来对计算的代码进行归类、优先计算的功能。
使用括号把某部分运算做了一组。
"=="不能写成"="
因为=号它的作用是赋值,不是做比较。
示例2:
示例3: