C# 循环详解
C# 中的循环(Loop)用于重复执行一段代码,常见的循环有for、while、do...while、foreach四种。
1. for 循环
适用于已知循环次数的情况。
语法
for (初始化; 条件表达式; 迭代器) { // 循环体 }示例
for (int i = 1; i <= 5; i++) { Console.WriteLine(i); }输出:
1 2 3 4 5执行过程:
i=1 → 输出1 i=2 → 输出2 i=3 → 输出3 i=4 → 输出4 i=5 → 输出5 i=6 → 条件不成立,结束for 倒序循环
for (int i = 10; i >= 1; i--) { Console.WriteLine(i); }输出:
10 9 8 ... 1for 多变量
for (int i = 0, j = 10; i < j; i++, j--) { Console.WriteLine($"i={i},j={j}"); }2. while 循环
适用于不知道具体循环次数,只知道结束条件。
语法
while (条件) { // 循环体 }示例
int i = 1; while (i <= 5) { Console.WriteLine(i); i++; }输出:
1 2 3 4 5无限循环
while (true) { Console.WriteLine("运行中..."); }通常配合 break:
while (true) { string input = Console.ReadLine(); if (input == "exit") { break; } Console.WriteLine(input); }3. do...while 循环
特点:
至少执行一次。
语法
do { // 循环体 } while (条件);示例
int i = 1; do { Console.WriteLine(i); i++; } while (i <= 5);与 while 的区别
while
int i = 10; while (i < 5) { Console.WriteLine(i); }输出:
无输出do...while
int i = 10; do { Console.WriteLine(i); } while (i < 5);输出:
10因为先执行后判断。
4. foreach 循环
专门用于遍历数组、集合。
遍历数组
string[] names = { "张三", "李四", "王五" }; foreach (string name in names) { Console.WriteLine(name); }输出:
张三 李四 王五遍历 List
List<int> nums = new List<int>() { 10,20,30,40 }; foreach (int num in nums) { Console.WriteLine(num); }foreach 特点
优点:
- 代码简洁
- 不需要下标
- 不容易越界
缺点:
- 无法直接修改元素
- 无法获得索引(需额外处理)
break 语句
用于立即结束循环。
for (int i = 1; i <= 10; i++) { if (i == 5) { break; } Console.WriteLine(i); }输出:
1 2 3 4continue 语句
跳过本次循环。
for (int i = 1; i <= 5; i++) { if (i == 3) { continue; } Console.WriteLine(i); }输出:
1 2 4 5嵌套循环
循环中再套循环。
九九乘法表
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 ...实战案例
求1~100的和
int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } Console.WriteLine(sum);结果:
5050求偶数和
int sum = 0; for (int i = 2; i <= 100; i += 2) { sum += i; } Console.WriteLine(sum);猜数字游戏
Random random = new Random(); int target = random.Next(1, 101); while (true) { Console.Write("请输入数字:"); int num = Convert.ToInt32(Console.ReadLine()); if (num > target) { Console.WriteLine("大了"); } else if (num < target) { Console.WriteLine("小了"); } else { Console.WriteLine("猜对了"); break; } }四种循环对比
| 循环 | 使用场景 | 是否先判断 |
|---|---|---|
| for | 已知次数 | 是 |
| while | 未知次数 | 是 |
| do...while | 至少执行一次 | 否 |
| foreach | 遍历集合 | 是 |
选择建议
已知循环次数 → for 未知循环次数 → while 至少执行一次 → do...while 遍历数组/集合 → foreach在实际开发中,使用频率通常是:
for > foreach > while > do...while其中foreach在遍历数组、List<T>、字典等集合时最常用,而for在需要索引操作或修改元素时更合适。
