C# while и цикл do...while
C# while и do...while
В этой статье мы узнаем о циклах while и do...while в C#, о том, как их использовать, и о различиях между ними.
В программировании часто требуется выполнить определенный блок операторов определенное количество раз. Возможным решением будет ввод этих операторов необходимое количество раз. Однако количество повторений может быть неизвестно заранее (во время компиляции) или может быть достаточно большим (скажем, 10000).
Лучшим решением такой проблемы является цикл. Циклы используются в программировании для повторного выполнения определенного блока операторов до тех пор, пока не будет выполнено какое-либо условие.
В этой статье мы научимся использовать циклы while в C#.
<час>Цикл while в C#
пока ключевое слово используется для создания цикла while в C#. Синтаксис цикла while:
while (test-expression) { // body of 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 Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 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);
}
}
}
Когда мы запустим программу, вывод будет таким:
Sum = 15
Эта программа вычисляет сумму первых 5 натуральных чисел.
- Первоначально значение sum инициализируется значением 0.
- На каждой итерации значение sum обновляется до
sum+i
и значение i увеличивается на 1. - Когда значение i достигает 6, тестовое выражение
i<=5
вернет false, и цикл завершится.
Давайте посмотрим, что происходит в данной программе на каждой итерации.
Первоначально i =1, сумма =0Р>
Итерация | Значение i | 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тд>ложь | Цикл завершается |
Итак, окончательное значение sum будет 15.
<час>C# do...while
делать и пока ключевое слово используется для создания цикла do...while. Он похож на цикл while, однако между ними есть существенная разница.
В цикле while условие проверяется перед выполнением тела. В цикле do...while все наоборот, т.е. условие проверяется после выполнения тела.
Вот почему тело цикла do...while будет выполнено хотя бы один раз независимо от тестового выражения.
Синтаксис цикла do...while:
do { // body of do while loop } while (test-expression);
Как работает цикл... while?
- Сначала выполняется тело цикла do...while.
- Затем
test-expression
оценивается. - Если
test-expression
составляетtrue
, выполняется тело цикла. - Когда
test-expression
составляетfalse
, do... пока цикл завершается.
блок-схема цикла 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
Как мы видим, приведенная выше программа печатает таблицу умножения числа (5).
- Изначально значение i равно 1. Затем программа входит в тело цикла do..while без проверки каких-либо условий (в отличие от цикла while).
- Внутри тела продукт рассчитывается и выводится на экран. Значение i затем увеличивается до 2.
- После выполнения тела цикла тестовое выражение
i <= 10
оценивается. Всего цикл do...while будет выполняться 10 раз. - Наконец, когда значение i равно 11, тестовое выражение оценивается как
false
и, следовательно, завершает цикл.
Бесконечный цикл while и do...while
Если тестовое выражение в циклах while и do...while никогда не дает false
, тело цикла будет выполняться вечно. Такие циклы называются бесконечными.
Например:
Бесконечный цикл while
while (true) { // body of while loop }
Бесконечный цикл do...while
do { // body of while loop } while (true);
Бесконечный цикл полезен, когда нам нужно, чтобы цикл выполнялся до тех пор, пока выполняется наша программа.
Например, если ваша программа представляет собой анимацию, вам нужно будет постоянно запускать ее, пока она не будет остановлена. В таких случаях необходим бесконечный цикл для многократного запуска анимации.
Язык C
- Ключевые слова и идентификаторы C#
- Класс и объект С#
- Абстрактный класс и метод С#
- Частичный класс C# и частичный метод
- Запечатанный класс и метод С#
- Разница между while и do-while:объяснение с примерами
- Программа чисел-палиндромов на Java с использованием цикла while и for
- C — константы и литералы
- C# — константы и литералы
- Программирование SINUMERIK 840D ВО ВРЕМЯ использования цикла