一、基础语法

while (条件表达式)
{
    循环体代码; // 条件成立时执行
}

核心逻辑:先判断条件,条件成立则执行循环体,条件不成立则直接终止循环,不执行任何循环体代码。

⚠️ 关键注意:有限次数循环必须包含「初始变量、循环条件、变量更新」三要素,缺少任一要素会导致死循环。

二、循环类型

1.死循环

1. 定义:while(true) 中条件永远为真,循环会无限执行,称为死循环。

2. 必备操作:必须配合 break 关键字手动终止循环,否则会导致程序卡死。

示例1:死循环仅执行1次(break直接跳出)
while (true) 
{
    Console.WriteLine("死循环");
    break; // 跳出整个死循环,循环仅执行1次
}
示例2:根据用户输入终止死循环

输入 yes 一直循环,输入 no 退出

while (true) 
{
    Console.WriteLine("请输入yes/no"); // 提示用户输入
    string input = Console.ReadLine(); // 接收用户输入
    if (input == "no") 
    {
        break; // 输入no时,跳出循环
    }
    // 输入yes或其他内容,循环继续执行
}

2.有限次数while循环

核心:通过初始化计数器、设定循环条件、更新计数器,控制循环执行次数。

示例1:打印0~9(共10次循环)
int i = 0; // 1. 初始化计数器
while (i < 10) // 2. 循环条件:i小于10时执行
{
    Console.WriteLine(i); // 循环体:打印当前计数器值
    i++; // 3. 更新计数器(关键!避免死循环)
}

执行流程:定义 i=0 → 判断 i<10 → 执行循环体 → i++ → 再次判断,直到条件不成立退出。

示例2:计算 0~100 累加和
int j = 0; // 计数器(从0开始)
int sum = 0; // 存储累加和的变量(初始值为0)
while (j < 101) // 循环条件:j从0到100(共101次)
{
    sum = sum + j; // 累加:将当前j的值加入sum
    j++; // 更新计数器
}
Console.WriteLine(sum); // 最终结果:5050

3.while循环 + if条件嵌套

场景:循环遍历数据的同时,通过if条件筛选出符合要求的数据,执行对应逻辑。

示例1:求0~100之间所有偶数的和
int a = 0;
int sum1 = 0; // 存储偶数和
while (a < 101) // 遍历0~100所有数字
{
    if (a % 2 == 0) // 判断:当前数字是否为偶数(能被2整除)
    {
        sum1 += a; // 偶数累加(sum1 = sum1 + a)
    }
    a++; // 更新计数器,遍历下一个数字
}
Console.WriteLine(sum1); // 最终结果:2550
示例2:找出0~100中第一个能被3整除的偶数
int count = 1;
while (count < 101)
{
    if (count % 3 == 0) // 第一步:判断能否被3整除
    {
        if (count % 2 == 0) // 第二步:判断是否为偶数(嵌套if)
        {
            Console.WriteLine(count); // 找到目标,打印结果
            break; // 跳出循环,无需继续遍历
        }
    }
    count++;
}
// 输出结果:6(0~100中第一个符合条件的数字)
示例3:找出0~100中前5个能被3整除的偶数
int count1 = 1; // 遍历计数器
int countNum = 0; // 记录符合条件的数字个数
while (count1 < 101)
{
    // 合并条件:能被3整除且为偶数
    if (count1 % 3 == 0 && count1 % 2 == 0)
    {
        Console.WriteLine(count1); // 打印符合条件的数字
        countNum++; // 个数加1
        if (countNum == 5) // 达到5个,终止循环
        {
            break;
        }
    }
    count1++;
}
// 输出结果:6、12、18、24、30

三、break 和 continue 关键字(重点区分)

两者均用于控制循环流程,但作用范围和效果完全不同,极易混淆,需重点记忆。

1. 核心区别

  • break跳出整个循环,终止所有后续循环,循环直接结束;

  • continue跳出本次循环,仅跳过当前循环体剩余代码,直接进入下一次循环判断,不终止整体循环。

2. continue 示例(跳过指定值,继续循环)

int i2 = 0;
while (i2 < 4)
{
    i2++;
    if (i2 == 2) // 跳过i2=2的本次循环
    {
        continue;
    }
    Console.WriteLine(i2); // 输出结果:1、3、4
}

3. break 示例(遇到指定值,终止整个循环)

int i1 = 0;
while (i1 < 4)
{
    i1++;
    if (i1 == 2) // 遇到i1=2,直接终止循环
    {
        break;
    }
    Console.WriteLine(i1); // 输出结果:1
}

4. 实战应用:用continue打印1~100所有偶数

int b = 0;
while (b < 101)
{
    b++;
    if (b % 2 != 0) // 是奇数,跳过本次循环(不打印)
    {
        continue;
    }
    Console.WriteLine(b + "---------"); // 仅打印偶数
}

5. 混合应用:continue + break

int aaa = 0;
while (aaa < 10)
{
    aaa++;
    if (aaa == 3)
    {
        continue; // 跳过aaa=3,不执行后续打印
    }
    if (aaa == 6)
    {
        Console.WriteLine(aaa + "???????"); // 打印:6???????
        break; // 终止整个循环
    }
    Console.WriteLine(aaa + "+++++++"); // 输出:1+++++++、2+++++++、4+++++++、5+++++++
}

四、易错点+核心总结

1. 易错点提醒

  • 忘记更新计数器(如i++),会导致有限循环变成死循环;

  • 混淆break和continue的作用,误将continue当作终止循环的关键字;

  • 死循环未添加break,导致程序卡死;

  • 嵌套if条件时,逻辑顺序错误,导致筛选结果异常。

2. 核心总结

  • 死循环:while(true),必须用break手动终止

  • 有限循环三要素:初始变量 → 循环条件 → 变量更新;

  • break:终止整个循环,后续循环不再执行

  • continue:仅跳过本次循环,不影响下一次循环

  • while+if嵌套:实现“循环遍历+条件筛选”,灵活处理数据。

更多推荐