我知道这是一个简单的问题,但有人可以帮我弄清楚如何将此循环转换为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++;
}
答案 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++;
}
你有它。