Цикл цикла для выдачи цикла - PullRequest
0 голосов
/ 25 мая 2018

Я знаю, что это простой вопрос, но может кто-нибудь помочь мне понять, как преобразовать этот цикл while в цикл 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 голосов
/ 25 мая 2018
Циклы

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++;
}

Ивот оно у вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...