一、for循环核心语法

for (初始化表达式; 循环条件; 迭代表达式)
{
    循环体代码; // 循环条件成立时执行
}

语法拆解(三要素,缺一不可):

  • 初始化表达式:如 int i = 0,定义循环计数器,可从任意值开始,仅在循环开始时执行1次;

  • 循环条件:如 i < 10,判断是否继续循环,条件成立则执行循环体,不成立则终止循环;

  • 迭代表达式:如 i++,更新计数器,在每次循环体执行完毕后执行。

⚠️ 语法注意:for循环括号内的三个表达式用分号分隔,不可遗漏;循环体用大括号包裹,即使只有一行代码,也建议加括号(规范写法,避免出错)。

二、核心执行顺序

  1. 执行初始化表达式(仅1次);

  2. 判断循环条件:条件成立 → 执行循环体;条件不成立 → 终止循环;

  3. 执行迭代表达式(更新计数器);

  4. 重复步骤2-3,直至循环条件不成立。

核心特点:明确知道循环次数时使用,比while循环更简洁,三要素集中在一行,便于维护。

三、修改三要素控制循环

通过修改初始化表达式、循环条件、迭代表达式,可灵活控制循环次数和执行逻辑。

示例1:修改初始化值,控制循环起始点

for (int i = 0; i < 10; i++)
{
    // 执行顺序:初始化i=0 → 判断i<10 → 执行循环体 → i++ → 重复判断
    Console.WriteLine(i);// 输出:0 1 2 3 4 5 6 7 8 9
}

示例2:修改循环条件,控制循环次数

// 初始化值设为5,从5开始循环
for (int i = 5; i < 10; i++)
{
    Console.WriteLine(i);// 输出:5 6 7 8 9
}

示例3:修改迭代表达式,控制递增量

// 循环条件设为i<5,仅循环5次
for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);// 输出:0 1 2 3 4
}

四、for循环实现死循环(易错点)

for循环也可实现死循环,通常是因为迭代表达式设置错误,导致循环条件永远成立,需避免此类写法(除非有特殊需求)。

// 错误示例:迭代表达式为i--,初始化i=0,循环条件i<10,永远成立(死循环)
// for (int i = 0; i < 10; i--)
// {
//     Console.WriteLine("死循环"); // 会无限执行,导致程序卡死
// }

⚠️ 提醒:死循环需配合break手动终止,否则会导致程序异常,日常开发中尽量避免无意的死循环。

五、for循环运用

示例1:基础for循环(打印0~9)

for (int i = 0; i < 10; i++)
{
    // 执行顺序:初始化i=0 → 判断i<10 → 执行循环体 → i++ → 重复判断
    Console.WriteLine(i);// 输出:0 1 2 3 4 5 6 7 8 9
}

示例2:遍历字符串(访问每个字符)

string str = "比例可变项";
Console.WriteLine(str.Length);// 输出:5(字符串长度,即字符个数)
Console.WriteLine(str[0]);// 输出:比(索引从0开始,str[0]是第一个字符)
Console.WriteLine(str[1]);// 输出:例
Console.WriteLine(str[2]);// 输出:可
Console.WriteLine(str[3]);// 输出:变
Console.WriteLine(str[4]);// 输出:项
// Console.WriteLine(str[5]); // 报错:索引超出了数组界限(最大索引 = 字符串长度-1)

// 用for循环遍历字符串,依次输出每个字符
for (int i = 0; i < str.Length; i++)
{
    Console.WriteLine(str[i] + "-------");
}

关键要点:字符串索引从0开始,最大索引 = str.Length - 1,超出则会报错。

示例3:遍历1000~9999,找出所有四叶玫瑰数

需求:四叶玫瑰数是指4位数,其各位数字的4次方之和等于自身(如1001 = 1⁴ + 0⁴ + 0⁴ + 1⁴)。

// 循环范围:1000~9999(所有4位数)
for (int i = 1000; i < 10000; i++) 
{
    // 1. 提取当前4位数的个位、十位、百位、千位
    int ge = i % 10; // 个位:原数对10取余
    int shi = i % 100 / 10; // 十位:原数对100取余,再除以10取整
    int bai = i % 1000 / 100; // 百位:原数对1000取余,再除以100取整
    int qian = i / 1000; // 千位:原数除以1000取整

    // 2. 判断:各位数字的4次方之和是否等于自身
    if (Math.Pow(ge, 4) + Math.Pow(shi, 4) + Math.Pow(bai, 4) + Math.Pow(qian, 4) == i)
    {
        Console.WriteLine("四叶玫瑰数" + i);
    }
}

补充说明:Math.Pow(数字, 次方) 是C#中计算幂的方法,此处用于计算各位数字的4次方。

六、易错点提醒(高频踩坑)

  • 遗漏for循环括号内的分号,或多加分号(如循环条件后加“;”,会导致循环体不执行);

  • 迭代表达式设置错误(如i--),导致死循环;

  • 遍历字符串/数组时,索引超出范围(最大索引 = 长度-1),导致报错;

  • 循环条件设置错误(如将i<10写成i>10),导致循环一次都不执行;

  • 忘记初始化计数器,或初始化值与循环条件不匹配(如i从10开始,循环条件i<5)。

七、核心总结

  • for循环核心:三要素(初始化、循环条件、迭代)集中,适合明确知道循环次数的场景;

  • 执行顺序:初始化 → 判断条件 → 执行循环体 → 迭代 → 重复判断;

  • 核心应用:字符串、数组的遍历,精准控制循环次数的场景;

  • 避坑关键:注意分号使用、索引范围、迭代表达式设置,避免死循环和索引报错;

  • 与while/do...while区别:for循环三要素集中,维护更简洁;while/do...while更适合循环次数不明确的场景。

更多推荐