1:位运算符(了解) |
(1)&,|,^,~,>>,>>>,<< |
做位运算,需要把数据转换为二进制。 |
(2)^的特点:(掌握) |
针对同一个数据异或两次,值不变。 |
面试题:交换变量的值。 |
int a = 10; |
int b = 20; |
开发:第三方变量 |
int temp = a; |
a = b; |
b = temp; |
面试:^的实现 |
a = a ^ b; |
b = a ^ b; |
a = a ^ b; |
(3)面试题(掌握) |
请用最有效率的方式计算2乘以8的值 |
2*8 |
2<<3 |
2:三元运算符(掌握) |
(1)格式: |
关系表达式?表达式1:表达式2; |
(2)执行流程: |
A:计算关系表达式的值 |
B:如果是true,表达式1就是结果 |
如果是false,表达式2就是结果 |
(3)练习: |
A:获取两个数据中较大的值 |
B:获取三个数据中较大的值 |
C:比较两个数是否相等 |
(4)个人补充: |
条件表达式的嵌套使用以及如何改写嵌套语句 |
3:键盘录入数据(掌握) |
记忆格式: |
(1)导包: |
import java.util.Scanner; |
注意:位置在class的上面。 |
(2)创建键盘录入对象: |
Scanner sc = new Scanner(System.in); |
(3)获取数据 |
int i = sc.nextInt(); |
(4)练习: |
A:求两个数据的和 |
B:获取两个数据中较大的值 |
C:获取三个数据中较大的值 |
D:比较两个数是否相等 |
4:顺序结构语句(掌握) |
(1)流程控制语句: |
顺序结构 |
选择结构 |
循环结构 |
(2)顺序结构 |
程序从上往下,依次执行。 |
5:if语句(掌握) |
(1)三种格式 |
A:格式1 |
if(关系表达式) { |
语句体; |
} |
执行流程: |
a:计算关系表达式的值 |
b:如果是true,就执行语句体 |
如果是false,就不执行语句体 |
c:继续向下执行 |
B:格式2 |
if(关系表达式) { |
语句体1; |
}else { |
语句体2; |
} |
执行流程: |
a:计算关系表达式的值 |
b:如果是true,就执行语句体1 |
如果是false,就执行语句体2 |
c:继续向下执行 |
和三元运算符的区别? |
三元运算符可以实现的,都可以用if语句的格式2实现,反之不成立。 |
什么时候不成立呢? |
当if语句的语句体是一条输出语句的时候,就不可以。 |
因为三元运算符是一个运算符,要求运算返回一个结果, |
而输出语句不是一个返回结果。 |
C:格式3 |
if(关系表达式1) { |
语句体1; |
}else if(关系表达式2) { |
语句体2; |
}else if(关系表达式3) { |
语句体3; |
} |
... |
else { |
语句体n+1; |
} |
执行流程: |
a:计算关系表达式1的值 |
b:如果是true,就执行语句体1 |
如果是false,就计算关系表达式2的值 |
c:如果是true,就执行语句体2 |
如果是false,就计算关系表达式3的值 |
... |
d:如果所有的关系表达式都不满足,执行else里面的语句体n+1; |
(2)注意事项 |
A:关系表达式无论简单还是复杂,结果必须是boolean类型 |
B:if语句的语句体如果是一条语句,{}是可以省略的。如果是多条语句,{}不可以省略。 |
建议永远不要省略。 |
C:不要随意加; |
一般有{无; |
D:else后面不会有关系表达式,只有if后面有。 |
(3)练习 |
A:获取两个数据中较大的值 |
B:获取三个数据中较大的值 |
C:比较两个数是否相等 |
D:根据键盘录入的x的值,计算出y的值并输出结果 |
E:根据学生成绩,输出对应的评价 |
F:根据键盘录入的月份,输出对应的季节 |
6:switch语句(掌握) |
(1)格式: |
switch(表达式) { |
case 值1: |
语句体1; |
break; |
case 值2: |
语句体2; |
break; |
case 值3: |
语句体3; |
break; |
... |
default: |
语句体n+1; |
break; |
} |
格式解释: |
A:看到switch说明这是switch语句 |
B:表达式的取值 |
byte,short,int,char |
JDK5以后可以是枚举 |
JDK7以后可以是String |
面试题:switch的表达式是可以是byte吗?可以是long吗?可以是String吗? |
C:case后面的值是和表达式进行匹配的 |
D:语句体就是要完成的动作,可以是多条语句 |
E:break 说明语句被中断了 |
F:default 和if语句的else相似,用于处理所有不匹配的情况 |
(2)执行流程 |
A:计算表达式的值 |
B:和case后面的值进行匹配,如果有对应的就执行对应的语句 |
C:如果没有对应的,就执行default |
(3)注意事项 |
A:case后面只能是常量,不能是变量,并且常量值不能重复。 |
B:break可以省略吗? |
可以。最后一个肯定可以。 |
中间的也可以,但是不建议。因为可能得到的结果不是我们想要的。 |
case穿透。 |
C:default可以省略吗? |
可以。 |
D:default一定要在最后吗? |
不一定。在中间也是可以的。但是要注意加上break |
E:switch语句的结束条件 |
a:遇到break |
b:执行到程序的末尾 |
(4)练习 |
A:表达式是整数的情况 |
B:表达式是字符的情况 |
C:表达式是字符串的情况 |
D:根据键盘录入的月份,输出对应的季节 |
(5)if语句和switch语句的各自应用场景 |
A:if语句 |
可以对几个常量值进行判断 |
可以对表达式是boolean类型的进行判断 |
可以对一个数据范围进行判断 |
B:switch语句 |