C# for 循环

在这里,您将学习如何使用 for 循环,for循环的结构,嵌套的for循环多次执行语句或代码块,以及如何退出for循环。

for 关键字表示C#中的循环。for 循环反复执行语句块,直到指定的条件返回false。

语法:

for (initializer; condition; iterator)
{    
   //代码块 
}

for循环包含以下三个可选部分,用分号隔开:

Initializer: 用于初始化一个变量,该变量将是 for 循环的局部变量,并且不能在循环外部访问。它也可以是零个或多个赋值语句、方法调用、增量或减量表达式,例如++i或i++,以及await表达式。

Condition:条件是一个布尔表达式,它将返回true或false。如果表达式的计算结果为true,则它将再次执行循环;否则,将退出循环。

Iterator:迭代器定义循环变量的增量或递减。

以下for循环执行一个代码块10次。

for(int i = 0; i < 10; i++)
{
    Console.WriteLine("i的值: {0}", i);
}

试试看输出:

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

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

 示例:for循环

for(int i = 0; i < 10; i++){
  Console.WriteLine("i 的值: {0}", i);
}

Initializer,condition 和 Iterator部分是可选的。您可以在for循环之前初始化变量,并且可以在代码块内定义条件和迭代器,如下所示。

 示例:for循环C#

int i = 0;

for(;;)
{
    if (i < 10)
    {
      Console.WriteLine("i 的值: {0}", i);
      i++;
    }else{
       break;
    }
}
输出:
i 的值: 0
i 的值: 1
i 的值: 2
i 的值: 3
i 的值: 4
i 的值: 5
i 的值: 6
i 的值: 7
i 的值: 8
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 ....

for循环的控制变量可以是任何数字数据类型,例如double,decimal等。

for (double d = 1.01D; d < 1.10; d+= 0.01D)
{
    Console.WriteLine("i 的值: {0}", d);
}
输出:
i 的值: 1.01
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("i 的值: {0}", i);
}
输出:
i 的值: 10
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("i 的值: {0}", i);
}
输出:
i 的值: 0
i 的值: 1
i 的值: 2
i 的值: 3
i 的值: 4

多个表达式

for循环还可以包括多个用逗号分隔的初始值设定项和迭代器语句,如下所示。

for (int i = 0, j = 0; i+j < 5; i++, j++)
{
    Console.WriteLine("i 的值: {0}, J: {1} ", i,j);
}
输出:
i 的值: 0, J: 0 
i 的值: 1, J: 1 
i 的值: 2, J: 2

for循环也可以包含语句作为初始值设定项和迭代器。

int i = 0, j = 5;
for (Console.WriteLine($"初始化器: i={i}, j={j}"); 
    i++ < j--; 
    Console.WriteLine($"迭代器: i={i}, j={j}"))
    {
    }

输出:

初始化器:i = 0,j = 5
迭代器:i = 1,j = 4  
迭代器:i = 2,j = 3  
迭代器:i = 3,j = 2

嵌套循环

C#在另一个for循环内允许一个for循环。

for (int i = 0; i < 2; i++)
{
    for(int j =i; j < 4; j++){
       Console.WriteLine("i的值: {0}, J: {1} ", i,j);
    }
        
}
输出:
i的值:0,J:0 
i的值:0,J:1  
i的值:0,J:2  
i的值:0,J:3  
i的值:1,J:1  
i的值:1 ,J:2  
i的值:1,J:3