运算符和表达式
运算符
定义
对字面量或者变量进行操作的符号
分类
算术运算符
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 取余 |
加减乘 如果在计算的时候有小数参与,结果有可能不精确的
除 结果只取整数,如果想要保留小数,必须有小数参与运算
取余的应用场景:
1.可以用取模来判断,A是否可以被B整除
A%B-------10%3
2.可以判斯A是否为偶数
A % 2 如果结果为0.那么证明A是一个偶数,如果结果为1,那么证明A是一个奇数
3.在以后,斗地主发牌-三个玩家
把每一张牌都定文一个序号,拿着序号 % 3
如果结果为1,就发给第一个玩家。
如果结果为2,那么就发给第二个玩家
结果为0,那么就发给第三个玩家
[练习]
数值拆分:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
算术运算符"+"的三种情况
数字相加
数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。
类型转换
取值范围从小到大
byte
short
int
long
float
double
隐式转换(自动类型提升)
提升规则
取值范围小的数值转换为取值范围大的数值,不需要额外写代码
byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算.不论是否类型一致
强制转换
取值范围大的数值转换为取值范围小的数值
如果把一个取值范围大的数值,赋值给取值范围小的变量是不允许直接赋值的。如果一定要这么做就需要加入强制转换
格式
目标数据类型变量名=(目标数据类型)被强转的数据
字符串相加
操作中出现字符串时,这个“+” 是字符串连接符,而不是算术运算符了当会将前后的数据进行拼接,并产生一个新的字符串。
连续进行”+"操作时,从左到右逐个执行
字符相加
当 (字符+字符) 或者 (字符 + 数字) 时,会把字符通过ASCII码表查询到对应的数字再进行计算。
"-" "*"数字运算和字符运算的规律与"+"一致,字符串只有"+"操作
自增自减运算符
介绍
符号 | 作用 | 说明 |
++ | 加 | 变量的值加1 |
-- | 减 | 变量的值减1 |
即可以放在变量的前面,也可以放在变量的后面
使用
单独使用
++和-- 无论是放在变量的前边还是后边,单独写一行结果是一样的
参与计算
放在变量后面
先用后加
int a = 10;
int b = a++;
放在变量前面
先加后用
int a = 10;
int b = ++a;
赋值运算符
符号 | 作用 | 说明 |
= | 赋值 | int a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a*b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
关系运算符
符号 | 说明 |
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。
注意事项:千万不要把“==”误写成“="
逻辑运算符
短路逻辑运算符
注意事项:
&|:无论左边 true false,右边都要执行。
&&||:如果左边能确定整个表达式的结果,右边不执行
&&:左边为false,右边不管是真是假,整个表达式的结果一定是false。
||:左边为true,右边不管是真是假,整个表达式的结果一定是true。
这两种情况下,右边不执行,提高了效率。
最常用的逻辑运算符&& || !
三元运算符
格式
(关系表达式) ? 表达式1:表达式2
true显示表达式1,false显示表达式2
计算规则
首先计算关系表达式的值
值为 true显示表达式1为运算结果
值为false显示表达式2为运算结果
整个三元运算符结果必须被使用
运算符优先级
表达式
用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
[例]
int a = 10; int b = 20; int c = a + b;
+是运算符,并且是算术运算符;a+b是表达式,由于+是算术运算符,所以这个表达式叫算术表达式
c记录表达式的表达结果