05-流程控制
控制语句分为 3 类:顺序、选择和循环。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。
1. 选择结构#
在还没有知道选择结构的时候,编写的程序总是从程序入口开始,顺序执行每一条语句直到执行完最后一条语句结束。但是生活中经常需要进行条件判断,根据判断结果决定是否做一件事情,这就需要选择结构
1.1 if 选择结构#
- 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
- 语句块只有一条执行语句时,{}可以省略
- if-else 语句结构,根据需要可以嵌套使用
- 当 if-else 结构是“多选一”时,最后的 else 是可选的,可根据需要省略
- 注意【顺序】!
- 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓
- 当多个条件是“包含”关系时,遵循“小上大下 / 子上父下”
- 练习
1.2 switch 多选择结构#
- switch 表达式限定:byte、short、char、int、枚举、String
- case 限定:其后必须是一个具体常量且所有 case 子句中的常量值必须互不相同
- switch 语句会根据表达式的值从相匹配的 case 标签处开始执行,一直执行到 break 语句处或者是 switch 语句的末尾。如果表达式的值与任一 case 值不匹配,则进入 default 语句(如果存在 default 语句)
- break 可选。用来在执行完一个 case 分支后使程序跳出 switch 语句块;但如果不加,就会出现"case 穿透"
- default 可选。并且 default 不一定非要放在最后,可以放在任意位置
- 练习
1.3 if & switch#
- 使用 switch-case 的,都可以改写为 if-else;反之不成立
- 当布尔表达式是 等值判断 的情况,使用
if-else if-else多选择结构
或者switch结构
均可 - 如果布尔表达式是 区间判断 的情况,则只能使用
if-else if-else多选择结构
- 当布尔表达式是 等值判断 的情况,使用
- 如果两种语句都可以使用,建议使用 swtich 语句,效率稍高
2. 循环结构#
2.1 for#
2.2 while#
2.3 do...while#
3. exercise#
4. 嵌套循环#
- 在一个循环语句内部再嵌套一个或多个循环,称为“嵌套循环”。
- while、do-while 与 for 循环可以任意嵌套多层
5. 程序流程控制#
- break;
- break 用于强行退出当前循环,不执行循环中剩余的语句
- 不仅能用于循环语句中,还能用在 switch-case 中
- continue;
- continue 语句仅用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句。
- 接着进行下一次是否执行循环的判定
- 用在 while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分。
- 用在 for 循环中,跳到 for 循环的迭代因子部分。
- 带标签的 break 和 continue
- return;
- 并非专门用于结束循环的,它的功能是结束一个方法。
- 当一个方法执行到一个 return 语句时,这个方法将被结束。
- 与 break 和 continue 不同的是,return 直接结束整个方法,不管这个 return 处于多少层循环之内。
总结:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?