C# for 循环
在这里,你将学习如何使用 for 循环多次执行语句或代码块,for 循环的结构,嵌套 for 循环,以及如何退出 for 循环。
for
关键字表示 C# 中的一个循环。for
循环重复执行一个语句块,直到指定的条件返回 false。
for (initializer; condition; iterator)//code block
for
循环包含以下三个可选部分,用分号分隔:
初始化器: 初始化器部分用于初始化一个变量,该变量将是 for 循环的局部变量,不能在循环外部访问。它也可以是零个或多个赋值语句、方法调用、递增或递减表达式(例如 ++i 或 i++)以及 await 表达式。
条件:条件是一个布尔表达式,它将返回 true 或 false。如果表达式评估为 true,则它将再次执行循环;否则,循环退出。
迭代器:迭代器定义循环变量的增量或减量。
以下 for 循环执行代码块 10 次。
for(int i = 0; i < 10; i++)
{
Console.WriteLine("Value of i: {0}", i);
}
i 的值: 1
i 的值: 2
i 的值: 3
i 的值: 4
i 的值: 5
i 的值: 6
i 的值: 7
i 的值: 8
i 的值: 9
在上面的示例中,int i = 0
是一个初始化器,我们定义了一个 int 变量 i
并将其初始化为 0。第二部分是条件表达式 i < 10
,如果此条件返回 true
,则它将执行代码块。执行完代码块后,它将转到第三部分,迭代器。i++
是一个递增语句,它将循环变量 i
的值增加 1。现在,它将再次检查条件表达式并重复相同的操作,直到条件表达式返回 false
。下图说明了 for
循环的执行步骤。
下图说明了 for
循环的执行步骤。

如果代码块只包含一个语句,那么你不需要将其包含在花括号 中,如下所示。
for(int i = 0; i < 10; i++)
Console.WriteLine("Value of i: {0}", i);
初始化器、条件和迭代器部分是可选的。你可以在 for
循环之前初始化一个变量,并且条件和迭代器可以在代码块内定义,如下所示。
int i = 0;
for(;;)
{
if (i < 10)
{
Console.WriteLine("Value of i: {0}", i);
i++;
}
else
break;
}
i 的值: 1
i 的值: 2
i 的值: 3
i 的值: 4
i 的值: 5
i 的值: 6
i 的值: 7
i 的值: 8
i 的值: 9
由于 for
循环中的所有三个部分都是可选的,因此在定义条件和迭代器时要小心。否则,它将是一个无限循环,永远不会结束。
for ( ; ; )
{
Console.Write(1);
}
for 循环的控制变量可以是任何数字数据类型,例如 double、decimal 等。
for (double d = 1.01D; d < 1.10; d+= 0.01D)
{
Console.WriteLine("Value of i: {0}", d);
}
i 的值: 1.02
i 的值: 1.03
i 的值: 1.04
i 的值: 1.05
i 的值: 1.06
i 的值: 1.07
i 的值: 1.08
i 的值: 1.09
for 循环中的步长部分可以增加或减少变量的值。
for(int i = 10; i > 0; i--)
{
Console.WriteLine("Value of i: {0}", i);
}
i 的值: 9
i 的值: 8
i 的值: 7
i 的值: 6
i 的值: 5
i 的值: 4
i 的值: 3
i 的值: 2
i 的值: 1
退出 for 循环
你还可以使用 break
关键字退出 for 循环。
for (int i = 0; i < 10; i++)
{
if( i == 5 )
break;
Console.WriteLine("Value of i: {0}", i);
}
i 的值: 1
i 的值: 2
i 的值: 3
i 的值: 4
多个表达式
for
循环还可以包含多个初始化器和迭代器语句,用逗号分隔,如下所示。
for (int i = 0, j = 0; i+j < 5; i++, j++)
{
Console.WriteLine("Value of i: {0}, J: {1} ", i,j);
}
i 的值: 1, J: 1
i 的值: 2, J: 2
for
循环还可以包含语句作为初始化器和迭代器。
int i = 0, j = 5;
for (Console.WriteLine($"Initializer: i={i}, j={j}");
i++ < j--;
Console.WriteLine($"Iterator: i={i}, j={j}"))
{
}
迭代器: i=1, j=4
迭代器: i=2, j=3
迭代器: i=3, j=2
嵌套 for 循环
C# 允许在一个 for 循环内部嵌套另一个 for 循环。
for (int i = 0; i < 2; i++)
{
for(int j =i; j < 4; j++)
Console.WriteLine("Value of i: {0}, J: {1} ", i,j);
}
i 的值: 0, J: 1
i 的值: 0, J: 2
i 的值: 0, J: 3
i 的值: 1, J: 1
i 的值: 1, J: 2
i 的值: 1, J: 3