C# 循环
在编程中,循环是一种重要的控制流结构,它允许我们重复执行一段代码,直到满足特定条件为止。C# 提供了多种循环结构,包括 for
、while
、do-while
和 foreach
。每种循环都有其独特的用途和适用场景。本文将详细介绍这些循环结构,并通过示例帮助你理解它们的工作原理。
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:编写一个程序,使用
while
循环计算用户输入的数字的平均值,直到用户输入-1
结束。 - 练习 2:使用
foreach
循环遍历一个字符串列表,并打印出所有长度大于 5 的字符串。 - 练习 3:使用
for
循环生成一个乘法表,并打印出 1 到 10 的乘法结果。
注意
在编写循环时,务必注意避免无限循环和逻辑错误。可以通过调试和测试来验证代码的正确性。