C#循环结构全套精讲|for/while/do-while/break/continue/goto(零基础可直接背诵)

前言

前面学完:顺序结构、选择结构(if / switch) 本篇补齐程序三大结构最后一环:循环结构。 循环核心作用:让代码重复执行,解放双手,避免重复写代码

包含:for循环、while循环、do-while循环、循环控制关键字(break/continue/goto)、全套易错点、选型场景、实战案例。


一、For 循环(最常用、最标准)

1. 标准语法格式(三段式)

for(初始化表达式; 循环条件; 迭代更新)
{
    // 循环体:重复执行的代码
}

2. 三段式执行规则(必考)

  1. 初始化:只执行 1次,用于定义循环计数器

  2. 循环条件:每次循环前判断,true执行、false退出

  3. 迭代更新:每次循环结束后执行(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 标记任意跳转 来回跳转,适合输入重填

七、全篇终极背诵总结

  1. for:已知次数循环,三段式、两分号不能丢

  2. while:未知次数,先判断后执行,必须手动迭代

  3. do-while:至少执行一次,输入校验神器

  4. break:结束整个循环

  5. continue:跳过当前一轮

  6. goto:标记跳转,学习常用、项目慎用

posted @ 2026-08-05 21:19  狂浪的狼  阅读(22)  评论(0)    收藏  举报