C#基础知识 4:控制结构
4.2 循环
循环 用于重复执行一段代码,直到满足特定条件为止。C# 提供了多种循环结构,包括 for
循环、while
循环、do-while
循环和 foreach
循环。以下是循环的详细讲解,包括其优点、缺点以及代码示例。
4.2.1 for
循环
for
循环 用于在已知迭代次数的情况下重复执行代码块。
语法:
csharp
for (initialization; condition; increment/decrement)
{
// 循环体
}
示例:
csharp
using System;
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Iteration: {i}");
}
}
}
4.2.2 while
循环
while
循环 用于在条件为真时重复执行代码块。
语法:
csharp
while (condition)
{
// 循环体
}
示例:
csharp
using System;
class Program
{
static void Main(string[] args)
{
int i = 0;
while (i < 5)
{
Console.WriteLine($"Iteration: {i}");
i++;
}
}
}
4.2.3 do-while
循环
do-while
循环 用于至少执行一次代码块,然后在条件为真时继续执行。
语法:
csharp
do
{
// 循环体
} while (condition);
示例:
csharp
using System;
class Program
{
static void Main(string[] args)
{
int i = 0;
do
{
Console.WriteLine($"Iteration: {i}");
i++;
} while (i < 5);
}
}
4.2.4 foreach
循环
foreach
循环 用于遍历集合(如数组、列表)中的每个元素。
语法:
csharp
foreach (type variable in collection)
{
// 循环体
}
示例:
csharp
using System;
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
Console.WriteLine($"Number: {number}");
}
}
}
4.2.5 循环的优点
-
代码重用:
- 循环可以重复执行相同的代码块,减少重复代码。
- 提高代码的可重用性和可维护性。
-
灵活性:
- 循环可以根据不同的条件和数据结构进行灵活的控制。
- 适合处理动态数据和复杂的迭代逻辑。
-
性能:
- 循环在编译时优化,执行效率较高。
- 特别是
for
循环在已知迭代次数时性能更好。
-
简化代码:
- 循环可以简化复杂的迭代逻辑,使代码更简洁和易读。
- 特别是
foreach
循环在遍历集合时更简洁。
-
自动化:
- 循环可以自动化重复任务,提高开发效率。
- 适合处理大量数据和批量操作。
4.2.6 循环的缺点
-
复杂性增加:
- 对于复杂的循环逻辑,代码可能会变得复杂和难以维护。
- 需要仔细设计和管理循环结构。
-
性能开销:
- 复杂的循环逻辑可能会增加性能开销。
- 特别是嵌套循环可能导致性能下降。
-
学习曲线:
- 对于初学者,理解复杂的循环逻辑可能需要一些时间。
- 需要熟悉不同的循环结构及其语法。
-
无限循环:
- 如果条件设置不当,可能会导致无限循环。
- 需要仔细检查循环条件和终止条件。
-
可读性下降:
- 过多的循环嵌套可能导致代码难以阅读和理解。
- 需要良好的代码组织和注释。
4.2.7 循环的代码示例
以下是一些详细的代码示例,展示了如何使用不同类型的循环。
示例1:for
循环
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Iteration: {i}");
}
}
}
示例2:嵌套 for
循环
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.WriteLine($"i: {i}, j: {j}");
}
}
}
}
示例3:while
循环
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
int i = 0;
while (i < 5)
{
Console.WriteLine($"Iteration: {i}");
i++;
}
}
}
示例4:do-while
循环
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
int i = 0;
do
{
Console.WriteLine($"Iteration: {i}");
i++;
} while (i < 5);
}
}
示例5:foreach
循环
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
Console.WriteLine($"Number: {number}");
}
}
}
示例6:foreach
循环遍历列表
文件1:Program.cs
csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
foreach (string name in names)
{
Console.WriteLine($"Name: {name}");
}
}
}
示例7:for
循环中的 break
和 continue
文件1:Program.cs
csharp
using System;
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break; // 当 i 等于 5 时退出循环
}
if (i % 2 == 0)
{
continue; // 跳过偶数
}
Console.WriteLine($"Iteration: {i}");
}
}
}
通过以上详细讲解和代码示例,您可以更好地理解和使用C#中的循环结构。循环是控制程序流程的重要工具,提供了强大的迭代能力,有助于处理重复任务和动态数据。