运算符
算术运算符
| 运算符 | 作用 |
| :——: | :———: |
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除(取商) |
| % | 取余 |** 如果在计算的时候有小数参与,结果有可能不精确。
** / 运算,整数参与运算,结果只能得到整数;小数参与运算,结果有可能不精确。
** %运算的应用场景:A是否可以被B整除;A是否为偶数(A%2);
隐式转换:取值范围小的数据转换成取值范围大的数据。(byte<short<int<long<float<double)
byte,short,char三种类型的数据在运算的时候,都会自动先提升为int,然后再进行运算
强制转换:取值范围大的数据转换成取值范围小的数据。格式:目标数据类型 变量名 = (目标数据类型)被强转的数据
** :有可能会导致数据不准确;
字符串相加:当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符。会将前后的数据进行拼接,并产生一个新的字符串。(连续加时从左到右逐个执行)
字符相加:当字符+字符(字符+数字)时,会把字符通过ASCII码表查询到对应的数字再进行计算。
自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 加 | 变量的值加1 |
— | 减 | 变量的值减1 |
单独成行时:++,—无论是放在变量的前面还是后面,单独写一行结果都是一样的。
参与运算时:先用后加,先加后用;
赋值运算符
=,+=,-=,*=,/=,%=。
(扩展的赋值运算符底层隐藏了强制类型转换,不用再强转了)
关系运算符
==,!=, >, >= , < ,<=
(关系运算符的结果都是布尔类型,要么true,要么false)
逻辑运算符
| 符号 | 作用 | 说明 |
| :——: | :———: | :—————————————-: |
| & | 逻辑与 | 并且 ,两边都为真,结果才为真 |
| | | 逻辑或 | 或则,两边都为假,结果才是假 |
| ^ | 逻辑异或 | 相同为false,不同为true |
| ! | 逻辑非 | 取反 |短路逻辑运算符:&& ||
| 符号 | 作用 | 说明 |
| —— | ——— | —————————————— |
| && | 短路与 | 结果和&相同,但是有短路效果 |
| || | 短路或 | 结果和|相同,但是有短路效果 |& | ,无论左边true false ,右边都要执行。
&& ||,如果左边能确定整个表达式的结果,右边不执行。
&&:左边为false,右边不管是真是假,整个表达式的结果一定为false
||: 左边为true,右边不管是真是假,整个表达式的结果一定为true
三元运算符
格式:关系表达式 ?表达式1:表达式2
结果必须被使用,赋值给变量或者直接打印出来。
运算符的优先级
()优先于所有