C# - for loop循环
本文关键字:循环 loop for | 更新日期: 2023-09-12 17:39:03
在这里,您将学习如何使用 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);
}
输出:
Value of i: 0Value of i: 1
Value of i: 2
Value of i: 3
Value of i: 4
Value of i: 5
Value of i: 6
Value of i: 7
Value of i: 8
Value of 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;
}
输出:
Value of i: 0Value of i: 1
Value of i: 2
Value of i: 3
Value of i: 4
Value of i: 5
Value of i: 6
Value of i: 7
Value of i: 8
Value of i: 9
由于所有三个部分在for
循环中都是可选的,因此在定义条件和迭代器时要小心。否则,它将是一个永远不会结束循环的无限循环。
for ( ; ; )
{
Console.Write(1);
}
输出:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.....for 循环的控制变量可以是任何数值数据类型,例如双精度、十进制等。
for (double d = 1.01D; d < 1.10; d+= 0.01D)
{
Console.WriteLine("Value of i: {0}", d);
}
输出:
Value of i: 1.01Value of i: 1.02
Value of i: 1.03
Value of i: 1.04
Value of i: 1.05
Value of i: 1.06
Value of i: 1.07
Value of i: 1.08
Value of i: 1.09
for 循环中的步骤部分可以增加或减少变量的值。
for(int i = 10; i > 0; i--)
{
Console.WriteLine("Value of i: {0}", i);
}
输出:
Value of i: 10Value of i: 9
Value of i: 8
Value of i: 7
Value of i: 6
Value of i: 5
Value of i: 4
Value of i: 3
Value of i: 2
Value of i: 1
退出 for 循环
还可以使用 break
关键字退出 for 循环。
for (int i = 0; i < 10; i++)
{
if( i == 5 )
break;
Console.WriteLine("Value of i: {0}", i);
}
输出:
Value of i: 0Value of i: 1
Value of i: 2
Value of i: 3
Value of i: 4
多个表达式
for
循环还可以包含多个初始值设定项和迭代器语句,以逗号分隔,如下所示。
for (int i = 0, j = 0; i+j < 5; i++, j++)
{
Console.WriteLine("Value of i: {0}, J: {1} ", i,j);
}
输出:
Value of i: 0, J: 0Value of i: 1, J: 1
Value of 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}"))
{
}
输出:
Initializer: i=0, j=5Iterator: i=1, j=4
Iterator: i=2, j=3
Iterator: i=3, j=2
嵌套循环
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);
}
输出:
Value of i: 0, J: 0Value of i: 0, J: 1
Value of i: 0, J: 2
Value of i: 0, J: 3
Value of i: 1, J: 1
Value of i: 1, J: 2
Value of i: 1, J: 3