Day04
运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 算术(arithmetic)运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符
- 三元运算符
算术运算符
+,- + - * 、 % (前)++ (后)++ (前)-- (后)-- +
- %:取模(取余)运算
结果的符号与被模数的符号相同
开放中,经常使用%来判断能否被除尽的情况。 - 前)++:先自增1,然后在运算
(后)++:先运算,然后在自增1 - 自增1不会改变本身变量的数据类型
- (前)--:先自减1,后运算
(后)--:先运算,后自减1
赋值运算符
+=, -=, *=, /=, %=
- 开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)
方式一:num = num + 2;
方式二:num += 2;(推荐,不会改变数据类型) - 开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)
方式一:num = num + 1;
方式二:num += 1;
方式三:num++;(推荐)
比较运算符
== != > < <= >= instanceof
逻辑运算符
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
说明:
1.逻辑运算符操作的都是boolean类型的变量
-
区分&与&&
相同点1:& 与 && 的运算结果相同
相同点2:当符号左边是true时,二者都会执行符号右边的运算
不同点:当符号左边是false时,&继续执行符号右边的运算。&&就不再执行符号右边的运算。
开发中,推荐使用&& -
区分:| 与 ||
相同点1:| 与 || 的运算结果相同
相同点2:当符号左边是false时,二者都会执行符号右边的运算
不同点:当符号左边是true时,|继续执行符号右边的运算。||就不再执行符号右边的运算。
开发中,推荐使用||
位运算符(了解)
结论:
1.位运算符操作的都是整型的数据
2.<<:在一定范围内,每向左移1位,相当于 * 2 空位补0,被移除的高位丢弃,空缺位补0。
>>:在一定范围内,每向右移1位,相当于 / 2 被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。
>>>:被移位二进制最高位无论是0或者是1,空缺位都用0补。
&:二进制位进行&运算,只有1&1时结果是1,否则是0;
|:二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^:相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
~:正数取反,各二进制码按补码各位取反
负数取反,各二进制码按补码各位取反
面试题:最高效的计算2 * 8 ? 2 << 3 或 8 << 1
三元运算符
1.结构(条件表达式)?表达式1:表达式2
2.说明
条件表达式的结果为boolean类型
根据条件表达式真或假,决定执行表达式1,还是表达式2
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
表达式1和表达式2要求是一致的
三元运算符是可以嵌套使用的
-
凡是可以使用三元运算符的地方都可以改写为if-else 反之,不成立。
4.如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。
流程控制
顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
分支结构中的if-else(条件判断结构)
一、三种结构
第一种:
if(条件表达式){
执行表达式1
}
第二种:二选一
if(条件表达式){
执行表达式1
}else{
执行表达式2
}
第三种:n选一
if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}
...
else{
执行表达式n
}