Циклы C# | For, While, Foreach и операции break, continue

В C# имеются четыре различных вида циклов (for, while, do…while и foreach), позволяющие выполнять блок кода повторно до тех пор, пока удовлетворяется определенное условие.

Цикл с параметром — Цикл for C#

Может использоваться в ситуациях, когда до входа в цикл известно количество итераций (повторений цикла). Имеет следующий вид:

for(<инициализация>; <условие>; <порядок выполнения>) { <действия> }

  1. Инициализация — установка начальных параметров счетчика;
  2. Условие — условие выхода из цикла, как только оно вернет ложь — произойдет выход из цикла;
  3. Порядок выполнения — команда увеличения счетчика.

Действия, выполняемые циклически, называются телом цикла. Рассмотрим наиболее общий пример: поиск факториала числа. Факториал числа вычисляется по формуле:

N = 1 * 2 * 3 * … * N

Как вы видите, мы заранее знаем, сколько раз должно повториться тело цикла, потому можем использовать счетчик.

int n = (()); // Пользователь вводит число. int factorial = 1; for(int i = 2; i <= n; i++) // Вычисление факториала. { factorial *= i; } (factorial); // Выводим факториал пользователю.

Итак, пользователь вводит любое число. После чего, мы вычисляем факториал по вышеуказанной формуле. Начальное значение факториала необходимо установить в единицу. Цикл начинаем с двойки и повторяем до тех пор, пока счетчик меньше или равен введенному пользователем значению. Если использовать оператор «меньше», мы потеряем умножение на старшее число при вычислении факториала. Порядок выполнения указан как i++, это значит, что на каждой итерации цикла счетчик i увеличивается на единицу. В виде порядка управления может выступать и более сложная математическая формула.

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

Синтаксическая диаграмма цикла While

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

Читайте также:  Масштабирование разрешения: секреты игры в 4K

Особенности цикла while:

1) В цикле с предусловием сначала идёт проверка условия, после чего выполняется тело цикла, если условие было истинно.

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

3) Цикл while может не выполниться ни разу.

4) Условие в цикле whilе проверяется на один раз больше, по сравнению с числом повторений тела цикла.

5) Для избежания бесконечного выполнения в теле цикла должен быть оператор, влияющий на условие.

Пример 1. Сколько раз выполнится тело цикла и сколько раз будет произведена проверка условия цикла?

eps:=; x:=1;

While x > eps Do x:=x/2;

Построим трассировочную таблицу

Номер итерации

x

x>eps

1

1> Þ Истина

1

0.5

0.5> Þ Истина

2

> Þ Истина

3

> Þ Истина

4

> Þ Истина

5

> Þ Истина

6

> Þ Истина

7

> Þ Ложь

Ответ: тело цикла выполнится 7 раз, а условие цикла будет проверено 8 раз.

Пример 2. Сколько раз выполнится тело цикла?

x:=0;

While x<=10 Do;

x:=x+1;

Правильный ответ: бесконечно много раз, а точнее программа зациклится, т. к. в теле цикла стоит пустой оператор.

Пример 3. Требуется написать программу для решения следующей задачи. В первый день Винни-Пух съел 1 кг мёда, во второй – 2 кг, а каждый последующий день он съедал столько мёда, сколько съел за два предыдущих дня. На какой день Винни-Пух съест не менее X кг мёда? X – натуральное число, X>2.

Program puh;

Var yesterday, before, today, i :integer;

Begin

Writeln(’Введите X’); readLn(X);

Before:=1;

Yesterday:=2;

Today:=before+yesterday;

i:=3;

While today<X Do

Begin

Before:=yesterday;

Yesterday:=today;

Today:=before+yesterday;

i:=i+1

End;

WriteLn(’На ’,i,’-ый день Вини-Пух съест ’,X,’ кг меда’);

Читайте также:  За что отвечает порт 445 и как его закрыть

End.

Пример 4. Дано целое число. Подсчитать количество цифр данного числа.

Program sum_cif;

Var m, N,k:integer;

Begin

WriteLn(‘Введите целое число’);

ReadLn(N);

If N=0 then k:=1 {При N=0 особый случай}

Else

Begin

m:=N;

k:=0;

While m<>0 Do

Begin

k:=k+1;

m:=m Div 10;

End

End;

WriteLn(’В числе ’,N,’ – ’,k,’ цифр!’)

End.

Обратите внимание, что в данной задаче избавляться от знака числа с использованием функции abs() нет необходимости.

Цикл do while в Java

Цикл do … while похож на цикл while, за исключением того, что цикл do … while гарантированно будет выполнен как минимум один раз.

Ниже приводится синтаксис цикла do … while —

do {    // Statements }while(Boolean_expression);

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

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

Пример

public class Test {    public static void main(String args[]) {       int x = 10;       do {          («value of x : » + x );          x++;          («\n»);       }while( x < 20 );    } }

value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19

Оцени статью

 

Оценить

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

Напишите комментарий, что можно добавить к статье, какой информации не хватает. Отправить

Читайте также:  5 способов установить Windows-программы на Linux

Спасибо за ваши отзыв!

Что такое pass в Python или как ничего не делать в цикле?

pass — это нулевой оператор и используется, когда оператор требуется синтаксисом Python (например, в теле цикла for или while), но никакие действия не нужны. Этот оператор можно использовать как заполнитель для кода, который ещё не написан.

for x in range(10): pass # нам не нужно ничего выполнять или пока не знаем что здесь должно быть, поэтому используем pass

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

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

while x == y: pass

Вложенные циклы

Рассмотрим вложенные циклы в Python. Для реализации можно использовать как вложенные for, так и while.

Про них мы уже писали выше. Здесь же хочется привести пару примеров использования. Они очень часто используются при обработке двухмерных списков.

Вот пример создания двумерного списка и вывода его на экран с помощью print.

d = [[1,2,3],[4,5,6]] for i in range(2): for j in range(3): print(d[i][j])

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

toExit = False while True: while True: toExit = doSomething() if toExit: break if toExit: break

Здесь приведен пример использования в Python цикла в цикле. Оба бесконечны. Все будет выполняться бесконечно, до тех пор, пока функция doSomething не вернет True. После этого поочередно сработают break во внешнем и во внутреннем циклах.