流程
使用不同关键字来控制程序的执行流程
分类
顺序结构
程序从上到下逐行执行
分支结构
不同条件执行不同代码
if else switch
if 单条件
格式:if(布尔表达式){
语句体;
}
执行流程
1.拿到布尔表达式判断,如果布尔表达式的值为真,执行{}中语句体
2.如果为假,什么也不执行,程序跳过if结构,继续向下执行
格式:if(布尔表达式){
语句体;
};
else{
语句体
}
执行步骤:
1,判断布尔表达式是否为真2,如果为真,执行i后{}中的语句体1;3,如果为假,执行else后{}中的语句体2;
if多条件情况
格式:
if(布尔表达式1){
语句体1;
}else if(布尔表达式2){
语句体2;
}else if(布尔表达式n){
语句体n;
}else{
语句体n+1;
}
执行流程:
1 先判断布尔表达式1 是否成立,如果成立执行语句体1;
2 如果不成立,继续判断 布尔表达式2,如果布尔表达式2成立,执行语句体2;
3 如果不成立,继续判断 布尔表达式3,依次向下进行;
4 直到判断成功
switch
转换 选择
格式
switch(变量){
case 值1:语句体1;break; //终止,终断
case 值2:语句体2;break;
case 值3:语句体3;break;
...
default:语句体n+1;
}
变量 ->byte short char int
jdk1.5 枚举
jdk1.7 字符串
执行流程:
1 算出变量的值
2 拿到变量的值,与case项匹配,如果有匹配的选项,则执行对应的语句
3 遇到break停止
4 如果所有的case项都没有匹配上,执行default中的语句
在执行case项时,遇到break才会停止,如果没有遇到则一直进行,且不再判断;直到遇到break才会停止
没有break 穿透[下坠]
循环结构
反复执行某一段代码
for循环 while循环 do while循环
for循环
格式:
for(①初始表达式;②布尔表达式;③更新表达式){
④循环体;
}
执行流程:
1 初始表达式,对变量初始化
2 判断布尔表达式是否为真
3 如果为真,执行循环体,如果为假,退出for循环
4 执行完循环体后,更新表达式
5 继续判断布尔表达式是否成立, 如果成立,执行循环体,如果为假,退出for循环
6 执行循环体以后,继续执行更新表达式,然后判断布尔表达式是否为真
死循环:
没有循环结束的条件,或者循环结束的条件永远不成立
在java中,使用break,终止循环
循环中的continue -> 继续:停止[跳过]本次循环,继续下次循环
一遇到continue,直接继续下一次循环,本行以后的代码不执行
穷举法:暴力破解
while循环:
格式: 初始化变量
while(布尔表达式){
循环体;-> 1循环逻辑 2 更新表达式
}
执行流程
1 初始变量
2 判断布尔表达式的值
3 如果值为真,执行循环体
4 执行完以后,在此判断 布尔表达式是否成立
5 如果依然成立,继续执行循环体
6 重复4 5 两步
7 如果布尔表达式的值为假,则退出while循环
for while的区别:
两种方式的区别:
1 定义初始化变量 for的初始化变量定义在小括号中,变量的生效范围为其后{}的范围
for的初始化变量定义在小括号中,变量的生效范围为其后{}的范围
while的初始化变量定义在循环的外边,循环结束以后,变量仍然可以使用
2,应用场景for一般用于我们知道要循环的次数while一般用于不知道循环的次数
do while
格式:
初始表达式
do{
循环体; ->1 循环逻辑 2 更新表达式
}while(布尔表达式);
执行流程:
1 初始化变量
2 直接来执行循环体
3 循环体执行完毕,判断布尔表达式 ,如果布尔表达式为真,继续执行循环体;如果为假,跳过循环体,结束
do while特点:
先不看条件,直接执行一次,然后判断条件
即使条件不成立,也可以执行一次
while 先判断,在执行
do while 先执行,在判断
while 如果条件不成立,一次 也不执行
do while 无论条件是否成立|至少执行一次
循环嵌套
再循环嵌套中还有嵌套,也即多层嵌套
执行流程:
1初始化外层循环的变量
2判断外层循环的布尔表达式是否成立
3 如果外层循环的布尔表达式成立,进入到内层循环
4 初始化内层循环的变量
5 判断内层循环的布尔表达式是否成立6 如果内层循环的布尔表达式成立则执行循环体7 循环体执行完以后,更新内层循环的变量8 继续判断内层循环的布尔表达式,如果成立,继续执行循环体
9,如果不成主,更新外层循环的变量10,继续判断外层的布尔布尔表达式,如果表达式成立,则进入到内层循环,依次重复4-9
\t tab 制表符 缩进 转义字符