В этой статье мы узнаем о циклах while и do… while в C #, их использовании и различиях между ними.
В программировании часто требуется выполнить определенный блок операторов определенное количество раз. Возможное решение - набрать эти операторы необходимое количество раз. Однако количество повторений может быть неизвестно заранее (во время компиляции) или может быть достаточно большим (скажем, 10000).
Лучшее решение такой проблемы - петля. Циклы используются в программировании для многократного выполнения определенного блока операторов до тех пор, пока не будет выполнено какое-либо условие.
В этой статье мы научимся использовать циклы while в C #.
C # цикл while
В то время как ключевое слово используется для создания то время как цикл в C #. Синтаксис цикла while:
while (test-expression) (// тело while)
Как работает цикл while?
- Цикл while в C # состоит из
test-expression
. - Если
test-expression
оценивается какtrue
,- операторы внутри цикла while выполняются.
- после выполнения
test-expression
снова оценивается.
- Если
test-expression
оцениваетсяfalse
как, цикл while завершается.
Блок-схема цикла while
Пример 1: цикл while
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1; while (i<=5) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) )
Когда мы запустим программу, вывод будет:
C # Цикл For: Итерация 1 C # Цикл For: Итерация 2 C # Цикл For: Итерация 3 C # Цикл For: Итерация 4 C # Цикл For: Итерация 5
Первоначально значение i равно 1.
Когда программа достигает оператора цикла while,
- проверяется выражение
i <=5
. Поскольку i равен 1 и1 <= 5
равенtrue
, он выполняет тело цикла while. Здесь строка печатается на экране с итерацией 1, а значение i увеличивается на 1, чтобы стать 2. - Теперь
i <=5
снова вычисляется тестовое выражение ( ). На этот раз выражение также возвращаетtrue
(2 <= 5), поэтому строка печатается на экране, а значение i увеличивается до 3… - Это продолжается, и цикл while выполняется до тех пор, пока i не станет 6. На этом этапе тестовое выражение вычислит значение,
false
и, следовательно, цикл завершится.
Пример 2: цикл while для вычисления суммы первых 5 натуральных чисел
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1, sum=0; while (i<=5) ( sum += i; i++; ) Console.WriteLine("Sum = (0)", sum); ) ) )
Когда мы запустим программу, вывод будет:
Сумма = 15
Эта программа вычисляет сумму первых 5 натуральных чисел.
- Первоначально значение суммы устанавливается равным 0.
- На каждой итерации значение sum обновляется до,
sum+i
а значение i увеличивается на 1. - Когда значение i достигает 6, тестовое выражение
i<=5
вернет false и цикл завершится.
Посмотрим, что происходит в данной программе на каждой итерации.
Первоначально i = 1, сумма = 0
Пока шаги выполнения циклаИтерация | Значение i | я <= 5 | Стоимость суммы |
---|---|---|---|
1 | 1 | правда | 0 + 1 = 1 |
2 | 2 | правда | 1 + 2 = 3 |
3 | 3 | правда | 3 + 3 = 6 |
4 | 4 | правда | 6 + 4 = 10 |
5 | 5 | правда | 10 + 5 = 15 |
6 | 6 | ложный | Цикл обрывается |
Итак, окончательное значение суммы будет 15.
C # do… цикл while
Сделать и в то время как ключевое слово используется для создания делать … в то время как цикл. Он похож на цикл while, но между ними есть большая разница.
В цикле while условие проверяется перед выполнением тела. Это полная противоположность цикла do… while, т.е. условие проверяется после выполнения тела.
Вот почему тело цикла do… while будет выполнено хотя бы один раз, независимо от тестового выражения.
Синтаксис цикла do… while:
do (// тело цикла do while) while (тест-выражение);
Как … работает цикл while?
- Сначала выполняется тело цикла do… while.
- Затем
test-expression
оценивается. - Если
test-expression
естьtrue
, выполняется тело цикла. - Когда
test-expression
естьfalse
, цикл do… while завершается.
do… while блок-схема цикла
Пример 3: цикл do… while
using System; namespace Loop ( class DoWhileLoop ( public static void Main(string() args) ( int i = 1, n = 5, product; do ( product = n * i; Console.WriteLine("(0) * (1) = (2)", n, i, product); i++; ) while (i <= 10); ) ) )
Когда мы запустим программу, вывод будет:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
As we can see, the above program prints the multiplication table of a number (5).
- Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
- Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
- After the execution of the loop’s body, the test expression
i <= 10
is evaluated. In total, the do… while loop will run for 10 times. - Finally, when the value of i is 11, the test-expression evaluates to
false
and hence terminates the loop.
Infinite while and do… while loop
If the test expression in the while and do… while loop never evaluates to false
, the body of loop will run forever. Such loops are called infinite loop.
For example:
Infinite while loop
while (true) (// тело цикла while)
Бесконечный цикл do… while
do (// тело цикла while) while (true);
Бесконечный цикл полезен, когда нам нужно, чтобы цикл работал, пока выполняется наша программа.
Например, если ваша программа является анимацией, вам нужно будет постоянно запускать ее, пока она не будет остановлена. В таких случаях необходим бесконечный цикл для повторного запуска анимации.