🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# for(C# 参考) 使用 **for** 循环,可以反复运行语句或语句块,直到指定的表达式计算为 **false**。这种循环是用于循环访问数组以及您事先知道的其他应用程序多少次希望此循环。 在下面的示例中,i 的值被写入控制台。并按 1 递增循环的每次迭代时。 ``` class ForLoopTest { static void Main() { for (int i = 1; i <= 5; i++) { Console.WriteLine(i); } } } /* Output: 1 2 3 4 5 */ ``` 前面示例中的 **for** 语句执行以下操作。 1. 首先,可变 i 的初始值建立的。此步骤仅发生一次,无论多少次此循环。您可以将此初始化,当发生循环处理的外部。 2. 若要计算该条件 (i &lt;= 5),i 的值与 5\. 比较。 * 如果 i 小于或等于 5,该条件的计算结果为 **true**,因此,以下操作。 1. 在循环主体的 Console.WriteLine 语句演示 i的值。 2. i 的值由 1\. 增加。 3. 循环回起点第 2 步再次计算该条件。 * 如果 i 大于 5,该条件的计算结果为 **false**,因此,您退出循环。 请注意,因此,如果 i 的原始值大于 5,循环体哪怕一次不会运行。 每个 **for** 语句定义初始值设定项、条件和迭代器部分。这些部分通常多少次此循环。 ``` for (initializer; condition; iterator) body ``` 部分提供了以下用途。 * 初始值设定项部分设置初始条件。在任一次运行的此部分的语句,则,在进入循环之前。该部分只能包含下面两个选项。 * 本地循环变量的声明和初始化,作为第一个示例显示 (int i = 1)。该变量是本地到循环,不能从循环外部访问。 * 零个或多个语句 expressons 从以下列表,以逗号分隔。 * [分配](https://msdn.microsoft.com/zh-CN/library/sbkb459w.aspx) 语句 * 方法的调用 * 向或后缀 [增量](https://msdn.microsoft.com/zh-CN/library/36x43w8w.aspx) 表达式作为前缀,例如 ++i 或 i++ * 向或后缀 [减量](https://msdn.microsoft.com/zh-CN/library/wc3z3k8c.aspx) 表达式作为前缀,例如 --i 或 i-- * 对象的使用创建的 [new](https://msdn.microsoft.com/zh-CN/library/fa0ab757.aspx) * [等待](https://msdn.microsoft.com/zh-CN/library/hh156528.aspx) 表达式 * 条件部分包含计算确定的布尔表达式循环是否应该退出或应再次运行。 * 迭代器节定义了什么在循环体中的每个迭代之后发生。迭代器节包含零个或多个下列语句表达式,逗号分隔): * [分配](https://msdn.microsoft.com/zh-CN/library/sbkb459w.aspx) 语句 * 方法的调用 * 向或后缀 [增量](https://msdn.microsoft.com/zh-CN/library/36x43w8w.aspx) 表达式作为前缀,例如 ++i 或 i++ * 向或后缀 [减量](https://msdn.microsoft.com/zh-CN/library/wc3z3k8c.aspx) 表达式作为前缀,例如 --i 或 i-- * 对象的使用创建的 [new](https://msdn.microsoft.com/zh-CN/library/fa0ab757.aspx) * [等待](https://msdn.microsoft.com/zh-CN/library/hh156528.aspx) 表达式 * 循环体包括语句、一个空的语句或语句块,则通过将零个或多个语句创建在大括号。 使用 [中断](https://msdn.microsoft.com/zh-CN/library/adbctzc4.aspx) 关键字,则可能发生 **for** 循环,使用 [继续](https://msdn.microsoft.com/zh-CN/library/923ahwt1.aspx) 关键字,也可以单步执行到下一个迭代。使用 [导航](https://msdn.microsoft.com/zh-CN/library/13940fs2.aspx)、[返回](https://msdn.microsoft.com/zh-CN/library/1h3swy84.aspx)或 [引发](https://msdn.microsoft.com/zh-CN/library/1ah5wsex.aspx) 语句,还可以退出所有循环。 本主题中的第一个示例显示最典型的 **for** 循环,做出部分的下列选择。 * 该初始值设定项声明并初始化本地循环变量,i,维护循环的迭代计数。 * 状态检查循环变量的值已知的最终值,5\. 的。 * 迭代器部分使用后缀递增语句,i++,匹配循环的每次迭代。 下面的示例阐释若干不太常见选择:将值赋给初始值设定项部分的外部循环变量,对初始值设定项和迭代器部分的 Console.WriteLine 方法和更改两个变量的值在迭代器部分。 ``` static void Main() { int i; int j = 10; for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j)) { // Body of the loop. } } // Output: // Start: 0 // i=1, j=9 // i=2, j=8 // i=3, j=7 // i=4, j=6 // i=5, j=5 ``` 定义一个 **for** 语句的任何表达式都是可选的。例如,下面的语句创建无限循环。 ``` for (; ; ) { // ... } ``` ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [foreach,in(C# 参考)](https://msdn.microsoft.com/zh-CN/library/ttw7t8t6.aspx) [for 语句 (C++)](https://msdn.microsoft.com/zh-CN/library/b80153d8.aspx) [迭代语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/32dbftby.aspx)