while循环到for循环问题

时间:2018-05-25 16:06:58

标签: c# for-loop while-loop

我知道这是一个简单的问题,但有人可以帮我弄清楚如何将此循环转换为for循环。我一直在尝试转换它时遇到错误

static string CountLines(string s)
{
    long count = 0;
    int start = 0;

    while ((start = s.IndexOf('\n', start)) != -1)
    {
        count++;
        start++;
    }
    return count.ToString();

}

这是我尝试的方式

for (int start = 0; start !=-1 ; start = s.IndexOf('\n', start)) {
   count++;
   start++;
}

1 个答案:

答案 0 :(得分:2)

for循环具有以下结构:

for (<initialization>; <condition to keep running>; <iterative statements>)
    <loop body>

因此,第一步,您希望将条件从while循环语句移动到for循环语句的中间部分。

for (something; (start = s.IndexOf('\n', start)) != -1; something;)

现在,我们可以将初始化(int start = 0)引入第一部分,将迭代语句(start++)引入最后一部分:

for (int start = 0; (start = s.IndexOf('\n', start)) != -1; start++)
{
    count++;
}

你有它。