Какой цикл использовать, для или делать / в то время как? - PullRequest
4 голосов
/ 25 августа 2009

Используя C # (или VB.NET), какой цикл (для цикла или цикла do / while) следует использовать, когда требуется счетчик?

Имеет ли значение, если цикл должен повторяться только заданное количество раз или через заданный диапазон?

Сценарий A - цикл for

for (int iLoop = 0; iLoop < int.MaxValue; iLoop++)
{
  //Maybe do work here

  //Test criteria
  if (Criteria)
  {
    //Exit the loop
    break;
  }

  //Maybe do work here
}

Преимущества

  • Счетчик объявлен как часть цикла
  • Простота реализации диапазона счетчиков

Недостатки

  • Должен использовать, если выйти из цикла

Сценарий B - цикл do / while

int iLoop = 0;
do
{
  //Increment the counter
  iLoop++;

  //Do work here
} while (Criteria);

или

int iLoop = 0;
while (Criteria)
{
  //Increment the counter
  iLoop++; 

  //Do work here 
}

Преимущества

  • Выход из цикла является частью структуры цикла
  • Выбор для оценки до или после блока цикла

Недостатки

  • Нужно управлять счетчиком вручную

Ответы [ 13 ]

1 голос
/ 25 августа 2009

Вы всегда можете добавить критерии выхода для цикла:

for (int iLoop = 0; iLoop < int.MaxValue && Criteria; iLoop++)
{
  //Maybe do work here
}

Я бы действительно пошел на то, что выглядит наиболее читабельно в вашем конкретном случае.

1 голос
/ 25 августа 2009

Я обычно использую для, потому что это просто. Я использую время, когда счетчик необходим после или перед циклом или если использование для невозможно.

0 голосов
/ 25 августа 2009

По крайней мере, для меня я использую for (), когда мне нужно пройти через массив и когда не требуется разрыв. И делать () и пока (), когда мне нужно обработать что-то в течение неизвестного времени.

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