一、运算符
0、表达式
算术表达式:a + b;
关系表达式:a > b;
1、逻辑运算符
A:有哪些:&, |, ^, !, &&, ||
B:用来连接boolean表达式的符号
C:结论
&:遇false则false
|:遇true则true
^:相同者false,不同则true(情侣关系)
!:非true则false,非false则true
&&:结果和&是一样的,只不过有短路效果,左边为false,则右边不执行
||:结果和|是一样的,只不过有短路效果,左边为true,则右边不执行
D:开发中常用哪些
&&, ||, !
2、位运算符【了解】
A:有哪些:&, |, ^, ~, >>, >>>, <<
B:结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反
>>:右移, 最高位是0,左边补齐0;最高位是1,左边补齐1
<<:左移, 左边的最高位丢弃,右边补齐0;
>>>:无符号右移, 无论最高位是0还是1,左边补齐0。
C:面试题【掌握】
(1)实现两个整数的交换(不用第三方变量)
int a = 4;
int b = 5;
A方案:(有弊端,可能a+b的结果会超出int范围)
a = a + b;
b = a - b;
a = a - b;
B方案:
a = a^b;
b = a^b;
a = a^b;
C方案(开发中用这个)
int temp = a;
a = b;
b = temp;
(2)最有效地算出2*8的结果
2: 0000 0010
16: 0001 0000
2<<3
3、三元运算符
A:格式
关系表达式 ? 表达式1 : 表达式2;
B:执行流程
计算关系表达式的结果是true还是false?
* 如果是true,返回表达式1
* 如果是false,返回表达式2
----------------------------------------------------------------------
二、键盘录入【掌握】
1、实现格式(目前先记住)
A:导包
import java.util.Scanner;
(位置:在class的上面)
B:创建对象
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();
----------------------------------------------------------------------
三、流程控制语句
1、可以控制程序执行流程的语句
2、分类
A:顺序结构
B:选择结构
a:if语句
b:switch语句
C:循环结构
a:for语句
b:while语句
c:do...while语句
----------------------------------------------------------------------
四、if语句【掌握】
1、三种格式
A:格式1
if (条件表达式) {
语句体;
}
执行流程:
判断条件表达式的值,看是true还是false
* 如果是true,就执行语句体;
* 如果是false,就不执行语句体
注意事项:
a:条件表达式的结构必须是boolean类型
b:如果if语句控制的语句体是一条语句,大括号{}可以省略,但是建议永远不要省略
c:右小括号与左大括号 ") {" 之间不要有分号
B:格式2
if (比较表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
判断比较表达式的结果是true还是false
* 如果是true,执行语句体1;
* 如果是false,执行语句体2;
注意事项:
else后面是没有比较表达式的哟!
C:格式3
if (比较表达式1) {
语句体1;
} else if (比较表达式2) {
语句体2;
} else if (比较表达式3) {
语句体3;
} ...
...
} else {
语句体n+1;
}
执行流程:
判断比较表达式1的值,看是true还是false
* 如果是true,就执行语句体1;
* 如果是false,就判断比较表达式2,看是true还是false
* 如果是true,就执行语句体2
* 如果是false,就判断比较表达式3,看是true还是false
* 如果是true,就执行语句体3
* 如果是false,就判断.......
.......
如果以上条件都不满足,就执行语句体n+1
注意事项:
a:最后一个else可以省略,但不建议省略,这样可以对范围外的值进行处理
b:一旦有一个条件表达式满足了,里面的语句体就会执行,那么其它的语句都不会执行。
2、三元运算符合if语句格式2的关系
所有三元运算符能实现的,if语句的格式2都能实现,反之不成立。
比如说当if控制的语句体是一个输出语句的时候,就不行了,为什么哩?
因为三元运算符是一个运算符,必须要有一个结果(具体的值)返回。
----------------------------------------------------------------------
五、switch语句【掌握】
1、格式
switch (表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
case 常量值3:
语句体3;
break;
.....
default:
语句体n+1;
break;
}
格式说明:
表达式:可以是byte,short,int,char
JDK5.0以后可以是枚举类型
JDK7.0以后可以是字符串类型 //String s = "fafdaf"
case:后面的值x是要和表达式的值进行相等比较的值
break:表示程序到这里中断,跳出switch语句
default:如果前面所有的case情况都不匹配,就执行default下面的语句
相当于if语句中的最后一个else{};
执行流程:
a:先计算表达式的值
b:然后和case后面的值匹配,如果有匹配值,就执行对应的语句,否则执行default控制的语句体。
2、注意事项
A:switch表达式只能是byte,short,int,char,枚举(JDK5),字符串(JDK7)
B:case后面只能是常量,不能是变量;多个case后面的值不能出现相同的。
C:default可以省略吗?
D:break可以省略吗?
E:default一定要放到最后吗?
F:switch语句的结束条件
a:遇到break就结束
b:执行到switch右大括号就结束
----------------------------------------------------------------------
六、if语句和switch语句的区别
A:判断固定值的时候,建议用switch;
B:判断区间或范围的时候,用if。 |