02 Java基础-运算符
-
算数运算符
注意:
-
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
-
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
-
-
字符中的"+"操作
-
byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char --> int --> long --> float --> double
例如:a + 1 结果为97
-
在字符串中,"+"的作用表示拼接。
-
1 + 99 + "年哈哈" ----> 100年哈哈 // 从左到右先进行数值运算,再字符串拼接
-
-
数值拆分
公式:
- 个位:数值 % 10
- 十位:数值 / 10 % 10
- 百位:数值 / 10 / 10 % 10
- 千位:数值 / 10 / 10 / 10 % 10 //以此类推
-
自增自减运算符
-
++在前,先进行自增再参与其他运算
eg:a = 10 b = ++a 结果:a=11 b=11
-
++在后,先进行运算,再进行自增加
eg:a = 10 b = a++ 结果:a=11 b=10
-
-
赋值运算符
-
a = a + 1 <---> a += 1
-
扩展的赋值运算符隐含了强制类型转换。
eg:
public class suanshu { public static void main(String[] args) { short s = 1; /* s是short类型,1是int类型 short和int相加时,short提升为int然后相加 提升后为两个int相加,结果还是int。将int赋值给short 需要加入强转。 s = s + 1 //错误:不兼容的类型:从int转化到short可能会有损失 */ s = (short)(s + 1); System.out.println(s); short ss = 1; ss += 1; System.out.println(ss); } }
-
-
比较运算符
-
如下:
符号 说明 == 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。
千万不要把"=="误写成"=","=="是判断是否相等的关系,"="是赋值。
-
-
逻辑运算符
-
如下:
符号 作用 说明 & 逻辑与 a&b,a和b都是true,结果为true,否则为false | 逻辑或 a|b,a和b都是false,结果为false,否则为true ^ 逻辑异或 a^b,a和b结果不同为true,相同为false ! 逻辑非 !a,结果和a的结果正好相反 -
短路逻辑运算符
- 逻辑与&,无论左边真假,右边都要执行。
- 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
- 逻辑或|,无论左边真假,右边都要执行。
- 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
-
-
三元运算符
-
三元运算符语法格式:
关系表达式 ? 表达式1 : 表达式2;
-
举例:
int a = 10; int b = 20; int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
-