C# 完全学习指南C# 完全学习指南
首页
基础教程
进阶内容
实战项目
编程指南
首页
基础教程
进阶内容
实战项目
编程指南
  • 基础教程

    • 📚 基础教程
    • 第1章 - 认识 C#
    • 第2章 - 环境搭建
    • 第3章 - 第一个程序
    • 第4章 - 变量与数据类型
    • 第5章 - 运算符
    • 第6章 - 控制流程
    • 第7章 - 循环语句
    • 第8章 - 数组
    • 第9章 - 方法
    • 第10章 - 面向对象基础
    • 第11章 - 类与对象
    • 第12章 - 继承
    • 第13章 - 多态
    • 第14章 - 封装
    • 第15章 - 接口

第7章 - 循环语句

嗨,朋友!我是长安。

如果要输出100次"Hello",难道要写100行代码吗?当然不用!这一章我们要学习循环语句,让程序能够重复执行任务。

🤔 什么是循环?

循环就是让程序重复执行某段代码,直到满足退出条件。

类比:就像你跑步,绕着操场跑10圈,每跑一圈就是一次循环。

🔄 for 循环

最常用的循环,适合知道循环次数的情况。

语法

for (初始化; 条件; 迭代)
{
    // 循环体
}

示例

// 输出 1 到 10
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}

// 输出 10 次 "Hello"
for (int i = 0; i < 10; i++)
{
    Console.WriteLine("Hello");
}

// 计算 1 到 100 的和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    sum += i;
}
Console.WriteLine($"1到100的和是:{sum}");  // 5050

执行流程

1. 初始化(i = 1)
2. 判断条件(i <= 10)
3. 执行循环体
4. 迭代(i++)
5. 回到步骤2

🔁 while 循环

先判断条件,条件为 true 才执行循环体。

语法

while (条件)
{
    // 循环体
}

示例

// 输出 1 到 10
int i = 1;
while (i <= 10)
{
    Console.WriteLine(i);
    i++;
}

// 猜数字游戏
Random random = new Random();
int targetNumber = random.Next(1, 101);  // 1-100 的随机数
int guess = 0;

while (guess != targetNumber)
{
    Console.Write("请猜一个数字(1-100):");
    guess = int.Parse(Console.ReadLine());
    
    if (guess < targetNumber)
    {
        Console.WriteLine("太小了!");
    }
    else if (guess > targetNumber)
    {
        Console.WriteLine("太大了!");
    }
    else
    {
        Console.WriteLine("恭喜你猜对了!");
    }
}

🔂 do-while 循环

先执行循环体,再判断条件。至少执行一次。

语法

do
{
    // 循环体
} while (条件);

示例

// 菜单系统(至少显示一次)
int choice;
do
{
    Console.WriteLine("\n===== 菜单 =====");
    Console.WriteLine("1. 选项1");
    Console.WriteLine("2. 选项2");
    Console.WriteLine("0. 退出");
    Console.Write("请选择:");
    choice = int.Parse(Console.ReadLine());
    
    switch (choice)
    {
        case 1:
            Console.WriteLine("你选择了选项1");
            break;
        case 2:
            Console.WriteLine("你选择了选项2");
            break;
        case 0:
            Console.WriteLine("再见!");
            break;
        default:
            Console.WriteLine("无效选择!");
            break;
    }
} while (choice != 0);

🎯 foreach 循环

专门用于遍历集合或数组(下一章会详细讲数组)。

语法

foreach (类型 变量 in 集合)
{
    // 循环体
}

示例

string[] names = { "张三", "李四", "王五" };

foreach (string name in names)
{
    Console.WriteLine(name);
}

⚠️ break 和 continue

break - 跳出循环

// 找到5就退出
for (int i = 1; i <= 10; i++)
{
    if (i == 5)
    {
        break;  // 跳出循环
    }
    Console.WriteLine(i);  // 输出:1 2 3 4
}

continue - 跳过当前循环

// 跳过偶数
for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue;  // 跳过本次循环
    }
    Console.WriteLine(i);  // 输出:1 3 5 7 9
}

🎨 嵌套循环

循环里面还可以有循环。

示例:乘法表

// 打印九九乘法表
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write($"{j}×{i}={i * j}\t");
    }
    Console.WriteLine();
}

输出:

1×1=1
1×2=2   2×2=4
1×3=3   2×3=6   3×3=9
...

示例:打印图案

// 打印三角形
for (int i = 1; i <= 5; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("* ");
    }
    Console.WriteLine();
}

输出:

*
* *
* * *
* * * *
* * * * *

💡 实战示例

示例1:质数判断

using System;

namespace PrimeNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入一个数:");
            int num = int.Parse(Console.ReadLine());
            
            bool isPrime = true;
            
            if (num <= 1)
            {
                isPrime = false;
            }
            else
            {
                for (int i = 2; i <= Math.Sqrt(num); i++)
                {
                    if (num % i == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
            }
            
            if (isPrime)
            {
                Console.WriteLine($"{num} 是质数");
            }
            else
            {
                Console.WriteLine($"{num} 不是质数");
            }
            
            Console.ReadKey();
        }
    }
}

示例2:阶乘计算

Console.Write("请输入一个数:");
int n = int.Parse(Console.ReadLine());

long factorial = 1;
for (int i = 1; i <= n; i++)
{
    factorial *= i;
}

Console.WriteLine($"{n}! = {factorial}");

📊 循环选择指南

循环类型适用场景示例
for知道循环次数循环10次
while不知道循环次数猜数字直到猜对
do-while至少执行一次菜单系统
foreach遍历集合/数组遍历姓名列表

📝 本章小结

  • for 循环:知道次数时使用
  • while 循环:先判断再执行
  • do-while 循环:先执行再判断,至少执行一次
  • foreach 循环:遍历集合
  • break 跳出循环,continue 跳过本次

🎯 下一步

掌握了循环后,下一章我们要学习数组,批量管理数据!

下一章:数组 →

💪 练习题

  1. 输出1到100所有奇数的和
  2. 打印倒三角形(5行)
  3. 输入一个数,判断是否是回文数(如121、1221)
  4. 找出1到100之间的所有质数
答案提示
  1. 使用 for 循环,条件 i % 2 != 0
  2. 使用嵌套循环,外层控制行,内层控制列
  3. 反转数字,比较是否相等
  4. 双重循环,外层遍历数字,内层判断是否有因子
最近更新: 2025/12/27 14:02
Contributors: 王长安
Prev
第6章 - 控制流程
Next
第8章 - 数组