1、逻辑运算符
& 有假则假,全真才真
| 有真则真,全假才假
^ 相同为假,不同为真
!取反,真变假,假变真
&& 结果与& 相同,具有短路效果,左边为false,右边不再判断。
|| 结果与| 相同,具有短路效果,左边为true,右边不再判断。
2、位运算符
& 有0则0,全1才1
| 有1则1,全0才0
^ 相同为0,不同为1
~ 取反,1变0,0变1
位运算符的特点:一个数对另一个数异或两次,还是这个数本身。
面试题:
交换两个变量的值:
int x = 10;
int y = 20;
x = x ^ y;
y = x ^ y;
x = x ^ y;
开发:
使用第三方变量:
int temp = x;
x = y;
y = temp;
<< 左移:右边空位补0,相当于乘以2的几次幂。
>> 右移,高位以符号位补齐,相当于除以2的几次幂。
>>> 无符号右移: 高位均以0补齐。
面试题:最高效的方式算出 2 * 8
3、三元运算符(三目)
格式:
关系表达式 ? 表达式1 : 表达式2
例如:
int z = (x > y) ? x : y;
4、Scanner -- 键盘录入
使用步骤:
导包: (要写在class的上面)
import java.util.Scanner;
封装键盘录入:
Scanner sc = new Scanner(System.in);
获取输入的int值
int a = sc.nextInt(); // 注意:只能输入纯数字字符
5、流程控制语句
顺序结构 :从上往下执行
选择结构:
if语句格式1:
if (条件表达式) {
// 语句体
}
if语句格式2:
if (条件表达式) {
// 语句体1
} else {
// 语句体2
}
if语句格式3:
if (条件表达式1) {
// 语句体1
} else if (条件表达式2){
// 语句体2
} else if (条件表达式3){
// 语句体3
}
...
else {
// 所有不符合上述条件的情况,走这
}
格式3的执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
。。。
如果都是false,就执行else中的内容。
switch语句的基本格式:
switch (表达式) {
case 值1:
// 语句体1
break;
case 值2:
// 语句体2
break;
case 值3:
// 语句体3
break;
...
default :
// 语句体n
break;
}
注意事项:
switch语句的表达式可以接收的数据类型:byte、short、char、int、枚举(JDK5)、String(JDK7)
执行流程:
拿表达式的值从上往下挨个匹配每一个case,一旦匹配上,执行相应的代码,如果都不匹配,执行default。
结束条件:
遇到break或者执行到switch语句的结尾。
建议:
不要省略break,并且default写在最后边。 |
|