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 ... 1

for 多变量

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 4

continue 语句

跳过本次循环。

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在需要索引操作或修改元素时更合适。