首页/新闻资讯/正文详情

C# 系列教程_8 循环语句 保姆级精讲(面向新手)

发布时间:2026/11/6 1:41:26 来源:云帆数科 栏目:资讯中心
C# 系列教程_8 循环语句 保姆级精讲(面向新手)
前置回顾顺序结构代码从上到下执行一次分支判断if/switch选择性执行代码最多跑一遍循环让一段代码重复执行直到满足退出条件。C# 4 种循环while先判断后执行有可能一次都不执行do-while先执行后判断至少执行 1 次for已知循环次数首选计数器循环foreach专门遍历集合 / 数组后面讲数组时重点用配套两个循环控制关键字break立刻终止整个循环跳出循环continue立刻结束本次循环直接进入下一轮条件判断学习路线while 循环do-while 循环for 循环最常用重点break 和 continue嵌套循环foreach 简介新手坑点汇总实战练习1 while 循环先判断再执行语法while(布尔条件) { //循环体条件true时重复执行 }执行流程检查括号内条件✅true → 进入大括号执行循环体执行完回到步骤 1 再次判断❌false → 直接跳出 while 循环继续执行循环后面代码⚠️关键点条件一开始就是 false循环体一次都不会执行⚠️死循环大坑循环内部必须有修改条件的代码否则条件永远 true无限循环示例 1打印 1~5using System; namespace WhileDemo { class Program { static void Main(string[] args) { int i 1; //循环计数器初始化在循环外面 while(i 5) { Console.WriteLine(i); i; //修改计数器靠近循环末尾改变条件 } Console.WriteLine(循环结束); } } }机理拆解一步步走i1判断1 5→ true → 打印 1 →i→ i2判断2 5→ true → 打印 2 →i→ i3判断3 5→ true → 打印 3 →i→ i4判断4 5→ true → 打印 4 →i→ i5判断5 5→ true → 打印 5 →i→ i6判断6 5→ false → 退出 while打印 “循环结束”如果删掉i;i 永远等于 1条件永远 true →死循环程序卡住。示例 2条件初始 false循环不执行int i 10; while(i 5) { Console.WriteLine(i); i; } Console.WriteLine(结束);第一次判断105→ false循环体一次不跑。2 do-while 循环先执行后判断语法do { //循环体先执行一次 }while(布尔条件); //末尾分号新手容易漏掉执行流程先直接执行一次大括号内循环体再判断 while 条件true → 回到 do 继续循环false → 跳出循环特点无论条件真假循环体至少执行 1 次示例打印 1~5static void Main() { int i 1; do { Console.WriteLine(i); i; } while (i 5); //⚠️末尾分号 Console.WriteLine(循环结束); }while 和 do-while 对比小例子int i 10; Console.WriteLine(while); while(i 5) { Console.WriteLine(i); i; } Console.WriteLine(do-while); int j 10; do { Console.WriteLine(j); j; } while (j 5);运行结果 while 无输出do-while 会打印 10然后判断条件不成立退出。使用场景需要至少执行一次比如输入密码先输入再判断是否正确。实战示例密码输入static void Main() { string pwd; do { Console.Write(请输入密码); pwd Console.ReadLine(); } while (pwd ! 123456); Console.WriteLine(密码正确登录成功); }机理先让用户输入密码再判断满足 “至少输入一次” 的需求。3 for 循环已知循环次数最常用⭐while 的计数器分散在外面、循环内部for 把初始化、条件、迭代全部写在一行结构集中。语法for(表达式1; 表达式2; 表达式3) { //循环体 }表达式 1计数器初始化只执行【一次】循环开始前表达式 2循环条件bool每次循环前判断表达式 3迭代更新i循环体执行完之后执行三个部分用分号隔开不是逗号执行顺序牢记这个顺序执行【表达式 1】仅一次判断【表达式 2】条件true → 执行循环体代码 → 执行【表达式 3】→回到步骤 2false → 直接跳出 for 循环示例打印 1~5static void Main() { for(int i 1; i 5; i) { Console.WriteLine(i); } Console.WriteLine(循环结束); }机理拆解逐轮跟踪int i1只执行一次判断i5→ true打印 1 → 执行ii2判断i5→ true打印 2 → 执行ii3判断i5→ true打印 3 → 执行ii4判断i5→ true打印 4 → 执行ii5判断i5→ true打印 5 → 执行ii6判断i5→ false退出循环变量作用域int i在 for 括号内定义i 只能在 for 循环内部使用循环外部访问不到。示例倒序打印 5 ~ 1for(int i 5; i 1; i--) { Console.WriteLine(i); }for 循环三部分都可以省略不推荐新手写for(;;)三个都空条件默认为 true → 死循环。✅什么时候选 for明确知道循环要执行多少次循环 10 次、遍历 10 个数字 ✅什么时候选 while不知道循环多少次只知道停止条件密码输入直到输入正确4 break 与 continue 循环控制关键字break立刻终止整个循环跳出循环只要执行break;循环直接结束后面循环不再执行。示例找到数字 3 就停止循环for(int i 1; i 5; i) { if(i 3) { break; //直接跳出for循环 } Console.WriteLine(i); } Console.WriteLine(循环结束);输出1 2 循环结束机理i3 触发 break整个 for 循环直接终止后面 i4、i5 不再执行。continue结束当前这一轮循环直接进入下一轮条件判断continue本轮后面代码不执行不会跳出整个循环直接跳到迭代 / 条件判断。示例遇到 3 跳过不打印 3for(int i 1; i 5; i) { if(i 3) { continue; //跳过本轮剩下代码直接i下一轮判断 } Console.WriteLine(i); }输出1 2 4 5机理i3 触发 continue → Console.WriteLine (i) 被跳过 → 执行 i进入下一轮判断。⚠️ while 里面使用 continue 小心死循环 while 中 continue 会直接跳回条件判断如果 continue 前面没有写 i计数器不会更新死循环。int i 1; while(i 5) { if(i 3) { continue; //⚠️直接跳去判断 i5i永远等于3死循环 } Console.WriteLine(i); i; }#5 嵌套循环循环里面再套循环外层循环执行一次内层循环完整跑完一整轮。 常用场景打印九九乘法表、二维表格。示例打印 2 行每行打印 3 个星号static void Main() { //外层控制行数 for(int row 1; row 2; row) { //内层控制一行里面的星号数量 for(int col 1; col 3; col) { Console.Write(*); //不换行打印 } Console.WriteLine(); //一行结束换行 } }输出*** ***机理row1进入外层循环内层循环 col 从 1 到 3打印 3 个 * → 换行内层结束row2进入外层循环内层循环 col 从 1 到 3打印 3 个 * → 换行内层结束row3条件不满足外层循环结束。break 只能跳出当前所在一层循环不会一次性跳出多层嵌套循环。#6 foreach 循环拓展遍历数组 / 集合 foreach 专门用来遍历数组、集合没有计数器不能修改元素。 语法foreach(var item in 数组) { }示例int[] arr {10,20,30}; foreach(int num in arr) { Console.WriteLine(num); }

相关推荐

eul 安装指南:3 种方式快速把 macOS 系统监控装进菜单栏
eul 安装指南:3 种方式快速把 macOS 系统监控装进菜单栏

eul 安装指南:3 种方式快速把 macOS 系统监控装进菜单栏 【免费下载链接】eul 🖥️ macOS status monitoring app written in SwiftUI. 项目地址: https://gitcode.com/gh_mirrors/eu/eul eul 是一款 macOS 系统监控工具,装进菜单栏后… · 2026/11/6 1:41:26

VioLA详解:让通用策略预测“人的运动”,而不是机器关节
VioLA详解:让通用策略预测“人的运动”,而不是机器关节

写在前面 【从零走向AGI】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。 项目地址🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git 魔方AI空间 猫先生 从零走向… · 2026/11/6 1:41:26

RoboRSI详解:机器人自进化为什么需要任务结构和技能边界
RoboRSI详解:机器人自进化为什么需要任务结构和技能边界

写在前面 【从零走向AGI】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。 项目地址🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git 魔方AI空间 猫先生 从零走向… · 2026/11/6 1:41:26

TSMaster中如何自定义27服务的安全算法?
TSMaster中如何自定义27服务的安全算法?

第一找到下面这个文件然后用Visual Studio 2022打开红色框是要实现的算法(可自定义),然后点击本地Window调试器,生成dll文件即可。注意:如果生成的文件是下面是文本文件(.log),并不是… · 2026/11/6 1:48:29

alertmanger 告警rule文件配置(三)
alertmanger 告警rule文件配置(三)

#案例2##服务器磁盘监控 groups: #----------------------------------生成环境--------------------------------------------------- name: ProdApplication1_disk_alertsrules:- alert: ProdApplication1_disk_usage_too_High # node_filesystem_avail_bytes{mountpo… · 2026/11/6 1:48:29

海外 B2B 企业的 YouTube,除了宣传片还能拍什么?
海外 B2B 企业的 YouTube,除了宣传片还能拍什么?

不少企业开设 YouTube 频道时,第一条视频是公司宣传片,后面陆续上传展会回顾、产品发布和工厂航拍。画面越来越丰富,销售却很难从中挑出一条,发给正在比较供应商的客户。 买家此时往往有更具体的问题:这台设备能否处理… · 2026/11/6 1:48:29

《汽车热管理系统:电子水泵单线PWM双向诊断机制》
《汽车热管理系统:电子水泵单线PWM双向诊断机制》

引言 在现代汽车热管理系统中,为了节省线束成本和接口空间,电子水泵普遍采用单线双向PWM通信。这意味着同一根信号线上,既承载着ECU(如BCM)下发的转速控制指令,又承载着水泵反馈的故障诊断脉冲。 在实际开… · 2026/11/6 1:48:29

新版|-|使用十周年以上手机电池健康80%的实验报告-超长日历时间超千次循环的普通消费品电池测评
新版|-|使用十周年以上手机电池健康80%的实验报告-超长日历时间超千次循环的普通消费品电池测评

实验结果实际为7plus 电池粗略校正 电池电量用到5%左右然后充满到100%。 实验设备如下:完整充放电过程一次:获取的全部数据ros2ros2-20l1a001cd:~$ idevicediagnostics ioregentry AppleARMPMUChargerIORegistryAbsoluteCapacity2460AdapterDetailsCurre… · 2026/11/6 1:48:29

ESP32-S3 有 8MB PSRAM 还是说内存不够之解决办法
ESP32-S3 有 8MB PSRAM 还是说内存不够之解决办法

ESP32-S3 有 8MB PSRAM 还是说内存不够之解决办法 上一篇:ESP32-S3 存的 Wi-Fi 密码自己就没了之解决办法 本文代码来自开源仓库 github.com/tangeai/xiaotai-esp32(主工程 lckfb-szpi-esp32s3-tirtc/)。配置取自 sdkconfig.defaults&#xf… · 2026/11/6 1:47:27

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码