跳到主要内容

C# 循环

在编程中,循环是一种重要的控制流结构,它允许我们重复执行一段代码,直到满足特定条件为止。C# 提供了多种循环结构,包括 forwhiledo-whileforeach。每种循环都有其独特的用途和适用场景。本文将详细介绍这些循环结构,并通过示例帮助你理解它们的工作原理。

1. for 循环

for 循环是最常用的循环结构之一,适用于已知循环次数的情况。它的语法如下:

csharp
for (初始化; 条件; 迭代)
{
// 循环体
}
  • 初始化:在循环开始前执行一次,通常用于初始化计数器。
  • 条件:每次循环开始前检查的条件。如果为 true,则执行循环体;否则退出循环。
  • 迭代:每次循环结束后执行,通常用于更新计数器。

示例:打印数字 1 到 5

csharp
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}

输出:

1
2
3
4
5
提示

for 循环非常适合处理需要精确控制循环次数的情况,例如遍历数组或列表。

2. while 循环

while 循环在条件为 true 时重复执行代码块。它的语法如下:

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

示例:计算数字的和,直到用户输入 0

csharp
int sum = 0;
int number;

while (true)
{
Console.Write("请输入一个数字(输入 0 结束):");
number = int.Parse(Console.ReadLine());

if (number == 0)
break;

sum += number;
}

Console.WriteLine("数字的总和是:" + sum);

输入:

3
5
2
0

输出:

数字的总和是:10
警告

使用 while 循环时,务必确保循环条件最终会变为 false,否则会导致无限循环。

3. do-while 循环

do-while 循环与 while 循环类似,但它会先执行一次循环体,然后再检查条件。它的语法如下:

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

示例:至少执行一次的循环

csharp
int number;

do
{
Console.Write("请输入一个正数:");
number = int.Parse(Console.ReadLine());
} while (number <= 0);

Console.WriteLine("你输入的正数是:" + number);

输入:

-1
0
5

输出:

你输入的正数是:5
备注

do-while 循环适用于需要至少执行一次循环体的情况。

4. foreach 循环

foreach 循环用于遍历集合(如数组或列表)中的每个元素。它的语法如下:

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

示例:遍历数组并打印每个元素

csharp
string[] fruits = { "苹果", "香蕉", "橙子" };

foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}

输出:

苹果
香蕉
橙子
提示

foreach 循环非常适合遍历集合,因为它不需要手动管理索引或计数器。

实际应用场景

场景 1:计算阶乘

使用 for 循环计算一个数的阶乘:

csharp
int number = 5;
int factorial = 1;

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

Console.WriteLine($"{number} 的阶乘是:{factorial}");

输出:

5 的阶乘是:120

场景 2:查找数组中的最大值

使用 foreach 循环查找数组中的最大值:

csharp
int[] numbers = { 3, 7, 2, 9, 5 };
int max = numbers[0];

foreach (int num in numbers)
{
if (num > max)
max = num;
}

Console.WriteLine("数组中的最大值是:" + max);

输出:

数组中的最大值是:9

总结

C# 提供了多种循环结构,每种结构都有其独特的用途:

  • for 循环适用于已知循环次数的情况。
  • while 循环适用于条件未知但需要重复执行的情况。
  • do-while 循环适用于至少需要执行一次循环体的情况。
  • foreach 循环适用于遍历集合中的元素。

通过掌握这些循环结构,你可以更高效地处理重复性任务,并编写出更简洁、易读的代码。

附加资源与练习

  1. 练习 1:编写一个程序,使用 while 循环计算用户输入的数字的平均值,直到用户输入 -1 结束。
  2. 练习 2:使用 foreach 循环遍历一个字符串列表,并打印出所有长度大于 5 的字符串。
  3. 练习 3:使用 for 循环生成一个乘法表,并打印出 1 到 10 的乘法结果。
注意

在编写循环时,务必注意避免无限循环和逻辑错误。可以通过调试和测试来验证代码的正确性。