如何在c#中停止(中断)“for”循环?

时间:2014-03-17 21:21:20

标签: c# for-loop

我需要停止"因为"在它自己结束之前循环。我有一个" for"在其他循环。这是我的代码(一个简单的例子):

for (int i = 0; i < 100; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                if (i == 5)
                {
                    //stop "for" cycle
                }
            }
        }

我想停止&#34; for&#34;在没有停在外面的循环里面。 我应该使用哪个命令来管理它?

4 个答案:

答案 0 :(得分:2)

对于一层循环,您可以使用break

for (int i = 0; i < 100; i++)
{
    for (int j = 0; j < 10; j++)
    {
        if (i == 5)
        {
            break; // <== Exits the 'j' loop, returns control
                   //     to the 'i' loop which continues
        }
    }
}

对于嵌套循环,您可能希望使用设置为中断条件的变量(例如,bool)。看看this page,我认为C#并没有像其他语言那样指导休息。

bool keepGoing = true;
for (int i = 0; keepGoing && i < 100; i++)
{
    for (int j = 0; keepGoing && j < 10; j++)
    {
        if (i == 5)
        {
            keepGoing = false; // Stops both
        }
    }
}

答案 1 :(得分:0)

    for (int i = 0; i < 100; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if (i == 5)
            {
                break;
            }
        }
    }

答案 2 :(得分:0)

您可以使用break语句(退出最里面的循环),甚至中断到标签。就个人而言,我不喜欢后者,因为这意味着你需要维护那些使代码难以阅读的标签。

如果您需要退出精心设计的嵌套for循环结构,请在函数中对整个事物进行编码并使用return。然后你甚至可以返回一个值。

答案 3 :(得分:0)

你想用一个命令打破两个循环?使用转到。

for (int i = 0; i < 100; i++)
{
    for (int j = 0; j < 100; j++)
    {
        if (i == 10 && j == 50)
            goto Exit;
    }

    continue;

Exit:
    break;
}

其他已经发布了如何打破内循环。