TOC

This article has been localized into Chinese by the community.

流程控制:

循环

编写软件时循环是另一个基本技术 - 重复X代码块的能力。 在C#中,它们有4种不同的形式,我们将看看它们中的每一种。

while循环

while循环可能是最简单的循环,所以我们从它开始。 只要您提供的条件为真,while循环就会执行一段代码。 一个小例子,然后再解释一下:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 0;

    while(number < 5)
    {
Console.WriteLine(number);
number = number + 1;
    }

    Console.ReadLine();
}
    }
}

尝试运行代码。 您将获得一个很好的数字列表,从0到4。该数字首先定义为0,每次执行循环中的代码时,它都会增加1。 但是为什么它只能达到4,当代码说5? 对于返回true的条件,数字必须小于5,这在这种情况下意味着一旦数字等于5,就不会达到输出数字的代码。这是因为评估了while循环的条件 在它进入代码块之前。

do循环

对于do循环来说恰恰相反,do循环在其他方面就像while循环一样。 do循环在循环执行后评估条件,这确保代码块始终至少执行一次。

int number = 0;
do  
{  
    Console.WriteLine(number);  
    number = number + 1;  
} while(number < 5);

输出是相同的 - 一旦数字大于5,就退出循环。

for循环

for循环有点不同。 当你知道你想要多少次迭代时,它是首选,因为你知道迭代的确切数量,或者因为你有一个包含数量的变量。 这是for循环的一个例子。

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 5;

    for(int i = 0; i < number; i++)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

这会产生完全相同的输出,但正如您所看到的,for循环更紧凑。 它由3部分组成 - 我们初始化一个用于计数的变量,设置一个条件语句来测试它,并递增计数器(++的意思与“variable = variable + 1”相同)。

我们定义i变量并将其设置为0的第一部分仅在循环开始之前执行一次。 最后两个部分是为循环的每次迭代执行的。 每次,i都与我们的数字变量进行比较 - 如果i小于数字,则循环运行一次。 在那之后,我增加了一。

尝试运行程序,然后尝试将数字变量更改为大于或小于5的值。您将看到循环响应更改。

foreach循环

我们将看的最后一个循环是foreach循环。 它对项集合进行操作,例如数组或其他内置列表类型。 在我们的示例中,我们将使用一个名为ArrayList的简单列表。 它的工作方式与数组非常相似,不要担心,我们将在后面的章节中对其进行研究。

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{    
    ArrayList list = new ArrayList();
    list.Add("John Doe");
    list.Add("Jane Doe");
    list.Add("Someone Else");
   
    foreach(string name in list)
Console.WriteLine(name);

    Console.ReadLine();
}
    }
}

好的,我们创建一个ArrayList实例,然后向它添加一些字符串项。 我们使用foreach循环遍历每个项目,将name变量设为我们每次取出的项。 这样,我们有一个命名变量输出。 如您所见,我们将name变量声明为字符串类型 - 您需要告诉foreach循环您希望从集合中提取哪种数据类型。 如果您有各种类型的列表,则可以使用object而不是特定类来将每个项作为对象取出。

使用集合时,您很可能在大多数时间使用foreach循环,主要是因为它比这些操作的任何其他循环更简单。

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!