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: 0
Value 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 循环执行步骤

如果代码块只包含一个语句,则无需将其括在大括号内 { } ,如下所示。

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: 0
Value 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.01
Value 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: 10
Value 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: 0
Value 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: 0
Value 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=5
Iterator: 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: 0
Value 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