C#循环结构全套精讲|for/while/do-while/break/continue/goto(零基础可直接背诵)
前言
前面学完:顺序结构、选择结构(if / switch) 本篇补齐程序三大结构最后一环:循环结构。 循环核心作用:让代码重复执行,解放双手,避免重复写代码。
包含:for循环、while循环、do-while循环、循环控制关键字(break/continue/goto)、全套易错点、选型场景、实战案例。
一、For 循环(最常用、最标准)
1. 标准语法格式(三段式)
for(初始化表达式; 循环条件; 迭代更新)
{
// 循环体:重复执行的代码
}
2. 三段式执行规则(必考)
-
初始化:只执行 1次,用于定义循环计数器
-
循环条件:每次循环前判断,true执行、false退出
-
迭代更新:每次循环结束后执行(i++ / i-- / i+=2)
✅ 完整执行顺序
初始化 → 判断条件 → 执行循环体 → 迭代更新 → 再次判断条件……直到条件为false结束
3. 基础示例:固定循环5次
// i从0开始,循环5次(0、1、2、3、4)
for (int i = 0; i < 5; i++)
{
Console.WriteLine("唱跳rap篮球");
Console.WriteLine("当前次数:" + i);
}
4. 语法灵活写法(分号绝对不能省)
三段内容可以省略,但两个分号必须保留
// 变量写在外面
int i = 0;
for (; i < 5; i++)
{
}
// 迭代写在循环内部
for (int j = 0; j < 10;)
{
j++;
}
5. ❌ For循环四大致命错误(高频坑点)
错误1:条件永远false → 一次不执行
for (int i = 0; i < -1; i++)
{
Console.WriteLine(i);
}
错误2:无迭代更新 → 死循环
for (int i = 0; i < 5; )
{
Console.WriteLine(i);
// 没有i++,i永远为0,条件永久成立
}
错误3:迭代方向错误 → 死循环
for (int i = 0; i < 5; i--)
{
Console.WriteLine(i);
}
// i越来越小,永远满足 i<5
错误4:条件写赋值语句
for (int i = 0; i = i; i++)
{
Console.WriteLine(i);
}
// 赋值语句不返回布尔值,直接报错
6. For循环经典实战案例(全覆盖)
案例1:倒序循环 20~11
for (int i = 20; i > 10; i--)
{
Console.WriteLine(i);
}
案例2:自定义步长(每次+2,输出奇数)
for (int i = 5; i < 20; i += 2)
{
Console.WriteLine(i);
}
案例3:输出1~100
// 写法1
for (int i = 1; i <= 100; i++)
{
Console.WriteLine(i);
}
// 写法2
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i + 1);
}
案例4:1~100 总和求和
int sum = 0; // 累加器必须写在循环外
for (int i = 0; i <= 100; i++)
{
sum += i;
}
Console.WriteLine("1~100总和:" + sum);
案例5:1~100 偶数求和
int sum = 0;
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 0)
{
sum += i;
}
}
Console.WriteLine("偶数总和:" + sum);
二、While 循环(未知循环次数专用)
1. 语法格式
while (布尔条件)
{
// 循环体代码
// 必须手动更新变量,否则死循环
}
执行规则:先判断、后执行 条件为true反复执行,条件false直接不执行。
2. 基础案例:打印0~4
int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i++; // 手动迭代,必不可少
}
3. 经典实战:搬砖问题(未知次数循环)
需求:第一次搬1块,每次翻倍,搬够500块停止,统计次数
int count = 0; // 次数
int sum = 0; // 总砖数
int num = 1; // 本次搬砖数量
while (sum <= 500)
{
count++;
sum += num;
num *= 2;
}
Console.WriteLine($"共需要{count}次");
三、Do-While 循环(至少执行一次)
1. 核心区别(必考)
-
while:先判断,后执行 → 可能一次都不执行
-
do-while:先执行,后判断 → 最少执行1次
2. 语法
do
{
// 循环体
} while (条件);
3. 最强实战:用户输入校验(上位机高频)
必须让用户至少输入一次,错误就重复弹窗
string res;
do
{
Console.WriteLine("你是好人吗?(y/n)");
res = Console.ReadLine();
} while (res != "y");
Console.WriteLine("你真好!");
四、三大循环选型口诀(直接背)
| 循环类型 | 适用场景 | 特点 |
|---|---|---|
| for | 已知循环次数 | 结构工整,自带计数器 |
| while | 未知次数,可能不执行 | 先判断后执行 |
| do-while | 必须至少执行一次 | 输入校验、设备采集首选 |
五、循环控制关键字:break / continue / goto
1. break:彻底结束整个循环
作用:直接跳出当前整层循环,剩余代码全部不执行
// i==5 直接终止循环
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break;
}
Console.WriteLine(i);
}
输出:0 1 2 3 4
实战:找到第一个符合条件的数立刻停止
for (int i = 925; i <= 1226; i++)
{
if (i % 15 == 0)
{
Console.WriteLine("第一个能被3、5整除的数:" + i);
break;
}
}
2. continue:仅跳过本轮循环
作用:本次后面代码不执行,直接进入下一轮循环
// 跳过5,其余全部打印
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
continue;
}
Console.WriteLine(i);
}
输出:012346789(唯独没有5)
3. goto:标记跳转(输入校验专用)
特点:自定义标记,可无限跳转,企业开发少用,学习常用
input:
Console.WriteLine("请输入性别");
string s = Console.ReadLine();
if (s == "男" || s == "女")
{
Console.WriteLine("输入正确");
}
else
{
Console.WriteLine("输入错误,重新输入");
goto input;
}
六、三大关键字终极对比表
| 关键字 | 作用 | 记忆口诀 |
|---|---|---|
| break | 终止整层循环 | 碰到直接停,彻底结束 |
| continue | 跳过单次循环 | 本轮不算数,下轮继续跑 |
| goto | 标记任意跳转 | 来回跳转,适合输入重填 |
七、全篇终极背诵总结
-
for:已知次数循环,三段式、两分号不能丢
-
while:未知次数,先判断后执行,必须手动迭代
-
do-while:至少执行一次,输入校验神器
-
break:结束整个循环
-
continue:跳过当前一轮
-
goto:标记跳转,学习常用、项目慎用

浙公网安备 33010602011771号