java学习日记20230305-控制结构
- 顺序控制:程序从上到下执行,默认程序控制结构
- 向前引用
- 分支控制:让程序有选择的执行
- 单分支
- if(条件表达式){}
- 双分支
- if(条件表达式){}else{}
- 多分支
- if(条件表达式){}else if(条件表达式){}else{}
- 多分支可以没有else,则一个执行入口都没有
- 如果所有的表达式都不执行,默认执行else
- 嵌套分支:在一个分支结构中嵌套了另外一个完整的分支结构(内层分支),规范,不要超过3层
-
- switch分支结构 swith(表达式){ case 常量1:语句块;break; case 常量2:语句块;break;default:语句块;}
- switch 如果没有break语句,则会根据第一个进入的case后依次进行穿透,直到遇到break,跳出switch,或者执行到default退出
- java中只要有值返回,就是表达式
- 表达式的数据类型和常量类型一直,或者可以自动转化比较的
- 表达式返回值必须是以下类型(byte,short,int,String,enum,char)
- case子句中的值必须是常量,常量表达式,不能是变量
- default语句是可选的,当case没有匹配时,默认执行default
- break跳出当前语句块,如果没有写break,程序会执行到结尾
- switch分支结构 swith(表达式){ case 常量1:语句块;break; case 常量2:语句块;break;default:语句块;}
- 循环控制
- for循环
- for(循环变量初始化;循环的条件;循环变量跌打){循环操作;}
- 循环变量初始化>循环条件>循环操作>循环变量迭代>循环条件>循环结束
- for循环返回一个布尔值的表达式
- for循环for(;循环条件:)循环变量,和变量迭代可以写在不同处, int i = 1; for(;i<10:){i++;}
- for(;;){} 无限循环
- 循环初始值可以有多个,用逗号分开,但要求类型一致,循环变量迭代也可以多个,用逗号隔开
- 化繁为简,将复杂的需求拆解为简单的需求
- 先死后活,先考虑固定的值,然后转成灵活变化的值
- while循环
- 循环变量初始化;while(循环条件){循环操作;循环变量迭代;}
- 循环条件为布尔值,先判断在执行;
- do-while循环体
- 循环变量初始化;do{循环语句;循环变量迭代}while(循环条件);
- 先执行再判断,先执行一次;
- 最后有一个分号;
- 多重循环控制
- for,dowhile,while循环等相互嵌套,一般不建议超过3层
- 内层循环是外层训话的循环体
- 外层m次,内层n次,内层实际是M*N次
- for循环
- break
- break语句用于终止语句块,一般使用在switch/循环中,跳出当前循环;
- break语句出现在多层嵌套循环,可以通过标签指明要终止的是哪一层循环;
- 标签的基本使用: label1:{
-
-
- label2:{
- lable3{
- break label2;
- } } }
-
-
- 在实际开发中,不要使用标签,如果没有指定break,默认跳出循环体
- "丁真".equals(name) 可以避免空指针;
- continue
- continue用于结束本次循环,执行下一次循环;
- continue也可以使用标签,用于指定结束哪次循环;
- return
- return使用在方法中,用于跳出方法,return 写在main方法里,退出程序;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码