献给小白的笔记day3
1.1 if语句
if语句第一种格式
if (条件判断语句) {
语句体;
}
if(条件判断语句){
语句体;
}
执行流程:
- 先看条件判断语句中的值是true还是false
- 先看条件判断语句中的值是true还是false
- 如果是true,执行语句体,如果是false,语句体不执行
- 如果是true,执行语句体;如果是false,语句体不执行
if语句第二种格式
if (条件判断语句) {
语句体1;
} else {
语句体2;
}
if(条件判断语句){
语句体1;
}else{
语句体2;
}
执行流程:
- 先看条件判断语句中的值是true还是false
- 如果是true,执行语句体1;如果是false,执行语句体2
- 先看判断条件,如果是true执行语句体1,如果是false执行else后面的语句体2
if语句第三种格式
if (条件判断语句1) {
语句体1;
} else if (条件判断语句2) {
语句体2;
}
......
else if (条件判断语句n) {
语句体n;
} else {
语句体n+1;
}
if(条件判断语句1){
语句体1;
}else if(条件判断语句2){
语句体2;
}else if(条件判断语句3){
语句体3;
}else if(条件判断语句n){
语句体n;
}else{语句体n+1;
}
执行流程:
- 先看条件判断语句1中的值是true还是false
- 如果是true,执行语句体1,if语句结束;如果是false,看条件判断语句2中的值是true还是false
- …
- 当if语句中所有的条件判断语句的值都为false的时候,执行语句体n+1
- 先看条件判断语句1执行是true还是false,如果是true,则执行语句体1,if语句结束,如果为false接着向下执行,
- 如果都为false则执行语句体n+1;也就是说if语句中按顺序只要其中条件判断语句有一个执行true就可以执行他的语句体,且结束if语句,执行语句下面的判断条件就算有满足的也不会被执行.
1.2 switch语句
switch语句的格式
switch (数据值) {
case 数据值1:
语句体1;
break;
case 数据值2:
语句体2;
break;
......
case 数据值n:
语句体n;
break;
default:
语句体n+1;
break;
}
switch(常量数据值){
case 1;
语句体1;
break;
case 2;
语句体1;
break;
case 3;
语句体1;
break;
case n;
语句体1;
break;
default:语句体n+1
break;
}
switch语句的执行流程
switch 语句执行流程
先拿小括号内的数据值和所有的case按照顺序向下比较,看匹配结果,一旦被匹配就执行该case后面的语句体,以及break,打断该分支结构,如若所有的case都没有被匹配,就是default里面的语句体n+1
- 先拿数据值和数据值1进行匹配,看匹配结果
- 如果匹配成功,执行语句体1;如果没有匹配成功,拿数据值和数据值2进行匹配,看匹配结果
- …
- 当switch语句中数据值和所有的case执行都没有匹配成功,执行default里面语句体n+1
switch语句的注意事项:
switch语句小括号的数据值是有限制的,只能是4种基本数据类型和2种引用数据类型,
基本数据类型有 int short char byte 引用数据类型有 jdk5.0加入的枚举类型Enum,和jdk7.0中加入的String类型
switch语句中小括号中的数据值的数据类型是有限的,只能是四种基本数据类型和两种引用数据类型
-
- 基本数据类型:byte,short,int,char byte short int char
- 引用数据类型:
- 在JDK5.0(包含)以后,switch语句中小括号中的数据值的数据类型支持枚举类Enum
- 在JDK7.0(包含)以后,switch语句中小括号中的数据值的数据类型支持字符串类String
- 在switch语句中,case语句和default语句前后顺序是可以互换的,不影响结果
- 在switch语句种,case语句和default语句顺序可以互换,不影响结果
- 在switch语句中,结束条件遇到break语句或者switch语句整体结束
- 在switch语句中,结束条件遇到break语句或者switch语句整体结束
- 在switch语句中,break可以省略不写,但是可能出现case穿透效果
- 在switch语句中,break可以省略不写,但是可能出现case穿透效果.