1 流程控制概述
控制代码的执行顺序就是流程控制
2 流程控制的分类:
顺序结构: 代码从上到下,从左到右依次执行
分支(判断)结构: 根据条件选择执行路径(过滤、筛选)
代码特点: 写得多,执行的少
语句实现: if条件语句三种格式,switch开关选择语句
循环结构: 相同相似的代码逻辑在符合条件的情况下,可以多次反复的执行(反复执行使用)
代码特点: 写得少,执行的多
语句实现: for循环语句,while循环语句,do while循环语句,continue继续语句,break终止语句,return 返回
3 分支结构之if条件语句
(1)if语句的第一种格式
①格式:
if(布尔表达式) { //布尔表达式就是返回一个布尔值的运算公式
语句体;
}
② 说明
1)if,关键字,表示如果的含义
2)if语句后面跟着的小括号,里面必须是boolean类型的值;计算结果为true或者false.
3)语句体,可以是任意逻辑代码
③ 执行流程:
计算布尔表达式的值 要么为true 要么为false
如果计算结果为true,执行语句体
如果计算结果为false,就不执行语句体
④ 注意事项
小括号后面不要加分号,一般来说,有左大括号,就没有分号,有分号,就没有左大括号.
如果if语句体只有一句代码,大括号可以省略,但是建议所有情况都加上大括号,不要省略.
案例1: 某公司现在要给员工进行薪资调整, 工作年龄大于等于5年, 加薪3000元,工龄不够5年的, 没有加薪,使用Scanner输入工作年限,使用salary=8000表示员工基本薪资
(2)if语句的第二种格式
如果...那么 如果...否则 如果... 其他 总有一个执行...
①格式
if (boolean类型条件表达式) {
语句体1;
} else {
语句体2;
}
②执行流程
计算条件表达式的值,要么为true,要么为false
如果条件表达式的值为true,执行语句体1
如果条件表达式的值为false,执行语句体2
③注意事项:
else是关键字, 表示其他, 是除了if条件之外的所有其他
if中的语句体1和else中的语句体2,一定会执行其中一个,不可能全执行或者全不执行
案例2: 某公司现在要给员工进行薪资调整, 工作年龄大于等于5年, 加薪3000元, 工龄不够5年, 加薪
1000元
(3)if语句的第三种格式
①格式(多支判断)
if (条件表达式1) {
语句体1;
} else if (条件表达式2) {
语句体2;
} else if (条件表达式3) {
语句体3;
}
...
} else if (条件表达式n) {
语句体n;
} else {
语句体n+1;
}
②执行流程
计算条件表达式1,如果为true,就执行语句体1
如果条件表达式1为false,计算条件表达式2,如果为true,就执行语句体2
如果条件表达式2为false,就计算条件表达式3...
如果条件表达式1~条件表达式n全都为false,那么就执行语句体n+1
③注意事项
最后的else语句可以有也可以没有.如果有,语句体1~语句体n+1一定会执行其中一句.如果没有,就可能没有输出结果
案例3: 某公司现在要给员工进行薪资调整,根据工龄决定涨薪级别
[0-5): 涨薪2000元
[5-10): 涨薪3000元
[10-15): 涨薪4000元
[15,以上): 涨薪5000元
如果工龄输入错误,提示。
课下案例:输入小明考试成绩,成绩小于60输出:男女混合双打,成绩大于等于60小于80:输出
男子单打,成绩大于等于80 奖励法拉利跑车一辆!
4 分支结构之switch开关语句
(1)基本语法
①switch: 表示英文中的开关,每个条件都像一扇门,开着的,就进门执行,否则就到下一扇门判断
②格式
switch (变量) {
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
...
case 常量n:
语句体n;
break;
default:
语句体n+1;
}
③关键字解释
switch: 开关;
case: 情况;
break: 破坏,退出,结束;
default: 默认; 相当于else
④执行流程:
计算switch小括号中表达式的值,分别和case后的各个常量值匹配
如果和常量1匹配,那么就执行语句体1,执行break,switch语句结束
如果和常量1不匹配,那么就判断是否和常量2匹配,如果匹配就执行语句体2,执行break,switch语句 结束
以此类推,如果常量1~常量n全都没有和表达式的值匹配,那么就执行default中的内容,switch语句结束
案例4:键盘录入一个整数,用于进行星期匹配,数据范围1-7,对应匹配星期一到星期天,如果不是1-7
范围,那么报出数据错误提示信息
⑤switch语句的注意事项
1.switch小括号变量数据类型:
JDK 1.5以前:x 只能是byte, short, char, int
JDK 1.5之后:x 的类型也可以是枚举类型啦!
JDK 1.7之后:x 的类型又多了一个String类型~
其实,x 准确的说,数值型的只可以是 int 类型,但是 byte, short, char 都可以自动转换成 int
所以 x 也可以是byte, short, char。
2.case后面只能跟常量,不能跟变量
3.每个case语句体后面, 要跟上一个break语句,否则就无法结束switch语句,并且发生case穿透.(一直执行下去,break作用就是跳出判断)
4.default语句: 可以写也可以不写.如果不写,就有可能一个语句都执行不到,建议把default语句加上,并break.
5.default语句可以写在任意位置,无论写在什么位置,都是最后去匹配,建议把default语句写在最后.
6.switch语句结束的条件: 遇到break语句; 遇到switch语句右大括号
5 判断的总结
if if-else else-if switch 写代码中如何使用
# 如果有一个判断且不一定需要结果 选择 if
# 如果有一个判断必须需要结果 选择 if-else
# 如果判断条件不固定(范围筛选),且一定需要结果 if - else-if - else
# 如果判断条件固定(且单个条件-变量筛选),且一定需要结果 switch case default