Оператор цикла с постусловием

Третьей формой оператора цикла является цикл do... while. Он имеет форму:

do

оператор;

while (условие);

Отличие от предыдущей формы цикла while заключается в том, что условие проверяется после выполнения тела цикла, поэтому данный формат циклов называется циклом с постусловием. Предположим, требуется прочитать символы с клавиатуры до тех пор, пока не будет введен символ "звездочка".

int ch;

do

ch = Console.Read();

while (ch!='*');

В операторах while и do также можно использовать операторы break и continue.

Как легко заметить, операторы цикла взаимозаменяемы. Оператор while соответствует оператору for:

For (; условие;)

Оператор

Пример чтения символов с терминала можно переписать в виде:

int ch;

ch = Console.Read();

while (ch!= '*')

ch = Console.Read();

Итерационные циклы

Циклический процесс, выполняющийся до достижения некоторого условия, называется итерационным. Учитывая неизвестность конечного числа шагов итерационного алгоритма, необходимо предусмотреть вариант зацикливания и сформулировать корректное условие для выхода из цикла. В самом простом случае, а также на этапе отладки алгоритма, достаточно поставить лимит числа шагов с выдачей сообщения в случае его исчерпания.

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

Значащими цифрами числа называются все цифры в его десятичной записи, кроме крайних левых и крайних правых нулей.

При решении задач, как правило, нет необходимости хранить промежуточные итерации – достаточно получения окончательного результата и (в итерационных алгоритмах) числа шагов, проделанных для достижения условия – для оценки скорости сходимости алгоритма.

Часто в задачах для вычисления очередного слагаемого удобно рекуррентно использовать предыдущее слагаемое, а не организовывать дополнительный (внутренний) цикл.

Примеры программ

Простые циклы

Вычислить значение факториала f=n! (n≤20) с использованием трех вариантов цикла. (f = n! = 1*2*3*…*n).

Внешний вид формы показан на рисунке 4.1.

Рисунок 4.1 – Главная форма приложения

В данном случае число n будем вводить с помощью компонента NumericUpDown (счетчик). В его свойства Minimum и Maximum можно задать соответственно минимальное и максимальное значения числа n (в нашем случае: 1 и 20). А свойство Value позволяет получить или установить текущее значение счетчика. При проектировании формы свойству Value было присвоено значение 10. Свойство Value имеет тип decimal, поэтому, чтобы преобразовать его в значение другого типа (у нас – в int), нужно использовать функции преобразования типов:

int n = Convert.ToInt32(numericUpDown1.Value.ToString());

Оператор цикла for:

private void button1_Click(object sender, EventArgs e) { int n = Convert.ToInt32 (numericUpDown1.Value.ToString()); long f = 1; for (int i = 1; i <= n; i++) f *= i; label2.Text = "n! = " + f.ToString(); }

Оператор цикла while

private void button1_Click(object sender, EventArgs e) { long f = 1; int i = 1; int n = Convert.ToInt32 (numericUpDown1.Value.ToString()); while (i <= n) { f *= i; i++; } label2.Text = "n! = " + f.ToString(); }

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: