前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从“入坑”到“退坑”每一天……
- 计划任务
- 完成任务
知识点归纳: 顺序结构流程控制语句是用来控制程序中各语句执行顺序的语句,
可以把语句组合成能完成一定功能的小逻辑模块。
其流程控制方式采用结构化程序设计中规定的三种基本流程结构,
即:顺序结构、分支结构和循环结构……
从上到下,从左到右
选择结构满足条件执行对应的代码段
if 语句
- 单分支
if(boolean表达式){ 满足条件执行的代码段; } 执行流程 : 1.boolean表达式,得到boolean结果 2.如果结果为true,执行{}中的语句体 如果结果为false,跳过if结构
- 双分支
if(boolean表达式){ 满足条件执行的代码段; }else{ 不满足条件执行的代码段; } 无论是否满足条件都能得到结果>
- 多分支
多分支 if(条件1){ 语句体1; }else if(条件2){ 语句体2; }else if(条件3){ 语句体3; }.... else{ 语句体n; } 执行流程 : 1.执行条件1,结果为true,执行语句体1 2.如果结果为false,执行条件2,如果结果为true,执行语句体2 如果结果为false,继续向下判断下面的条件 .... 如果以上所有的条件都不满足,执行 else后面的语句体n 注意: 如果{}中语句体只有一句,前后的{}可以省略
循环结构switch语句
if 区间判断,定值判断 switch定值判断 区别 : 能用switch都能使用if代替,能用if不一定能用switch switch(表达式|变量){ case 值1: 语句体1; break; case 值2: 语句体2; break; .... default : 语句体n; break; } 说明 : (表达式|变量)中的数据只能为 : byte,short,int ,char , jdk1.5->枚举 , > jdk1.7->字符串 case 后面的值与()中的变量的值进行判断是否相等 break : 结束当前switch语句结构执行流程
- 执行()中的表达式,确定变量
- .()中的结果与case后面的值进行判断,是否相等,从上 到下的判断case
与哪一个case后面的值相等,就执行对应的语句体- 执行到break结束switch语句,语句体之后如果没有break会发生case穿透
问题- 如果与以上所有case后面的值都不相等,如果存在default,就执行default的语句体
- 注意 :
- 恰当的时候可以选择通过case穿透实现,简化switch结构
- default可以定义在switch语句中的任意位置,一般为最后
循环优点
- 提高代码复用性
- 降低代码的冗余
- 提高的开发效率
for循环
for(条件初始化;条件判断;条件变化 ){ 循环体语句; }执行流程
- 条件初始化,有了条件i=1
- 执行条件判断->值为boolean类型的表达式
- true–>执行这一次循环体语句
- false–>循环结束
- 如果为true,执行一次循环体语句
- 条件变化 重复2~4执行
- 注意
- 循环中声明的条件i,作用域只在的当前循环中
- 循环的条件i可以用来控制循环执行次数,可以在循环体逻辑代码中使用
- 循环体语句只有一句,前后的{}可以省略
while 循环
当不确定循环次数,不确定变化的变化范围,根据一个条件判断决定 条件初始化; while(条件判断){ 循环体语句; 条件变化; }
do……while 循环
条件初始化; do{ 循环体语句; 条件变化; }while(条件判断); while(条件判断){ 循环体语句; } 区别 (while): 无论是否满足条件,至少执行一次
break与continue关键字:
break:
- 作用 : 打破 终止 停止 结束
- 应用场景 : switch语句 循环语句
continue:
- 作用 : 结束本次循环直接进入到下一次循环
- 应用场景 : 只能在循环使用
break 与 continue默认作用于哪一层循环 : 最内层循环
带标签的break 与 continue的使用one:for(int i=1;i<=5;i++){ two:for(int j=10;j<=20;j++){ System.out.print(i+"---->"+j+"t"); if(j==15){ break one;//跳出指定位置(结束最外层循环) } } System.out.println();
总结:死循环
- 编译死循环
while(true){ 循环体;//会一直输出 } System.out.println("无法到达的语句!"); do{ 循环体;//会一直输出 }while(true); System.out.println("无法到达的语句!"); for(;;){ 循环体;//会一直输出 } System.out.println("无法到达的语句!");//编译死循环属于能被java编译通过的
- 逻辑死循环
for(int i=10;i<20;){ 循环体;//会一直输出 }//逻辑死循环属于缺少迭代条件一直执行的循环
今天是愉快的一天……



