На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Урок 29. Управление выполнением программы C#: циклы While


Двадцать девятая часть учебника по основам C# завершает наше рассмотрение циклов, доступных разработчику C#. В этой статье рассматриваются два варианта условного цикла: "цикл while" и "цикл do-while".

Цикл while

Две циклические структуры, описанные в предыдущих частях учебника по основам C#, аналогичны в работе. В большинстве случаев цикл for и цикл foreach будут выполняться для определенного числа итераций, управляемых непосредственно программистом или количеством элементов в коллекции. В некоторых ситуациях количество требуемых итераций неизвестно и не может быть оценено, поскольку цикл должен продолжаться до тех пор, пока не будет выполнено условие. Именно тогда можно воспользоваться помощью цикла while.

Цикл while позволяет указать 'пока условие истинно, выполните цикл через следующие команды.

Синтаксис инструкции таков:

while (условие) команды;
Элементом условия является любой предикат. Если значение равно true, выполняется предоставленная команда. Команда может быть одним оператором или блоком кода, окруженным фигурными скобками {}.

В следующем примере цикл while используется для вычисления степеней трех от одного до тысячи. Если мы не рассчитали количество итераций заранее, мы не можем использовать цикл for для достижения этого, поэтому вместо него используется цикл while.

int current = 1;
string output = String.Empty;
 
// Цикл идет пока проверяемое значение равно 1000 или меньше
while (current <= 1000)
{
    output += current.ToString() + " ";
    current *= 3;
}
 
Console.WriteLine(output);      // Вывод "1 3 9 27 81 243 729 "
Условие цикла while проверяется каждый раз, когда код цикла будет обработан. Если условие ложно для первой итерации, тело цикла никогда не будет выполняться. В следующем примере тело цикла игнорируется:

int current = 1001;
string output = String.Empty;
 
while (current <= 1000)
{
    output += current.ToString() + " ";
    current *= 3;
}
 
Console.WriteLine(output);      // Вывод ""
Цикл Do-While

Цикл do-while позволяет указать "выполните этот процесс, пока условие истинно". Синтаксис инструкции аналогичен циклу while, но меняет расположение условия и команды на противоположное:

do команды while (условие);
Принцип действия цикла do-while такой же, как и для цикла while. Пока условие истинно, выполняется команда или блок команд. Однако, поскольку условие проверяется после каждой итерации цикла, код в цикле гарантированно выполняется по крайней мере один раз.

В следующем примере показан цикл do-while, используемый для вычисления факториала.

int value = 1;
int factorial = 10;
 
do
{
    value *= factorial;
    factorial--;
} while (factorial > 1);
 
Console.WriteLine(value);       // Вывод "3628800"
Дополнительное управление циклом

Как и в случае с циклом for и foreach, доступны команды break и continue. Команда break немедленно останавливает выполнение цикла. Команда continue останавливает выполнение текущей итерации и перезапускает цикл, если условие все еще выполняется.



Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегистатьи IT, Уроки по си шарп, циклы, си шарп, while

Читайте также:




Наши услуги
Наполнение сайтов


© upread.ru 2013-2020
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.