C # цикл while и do ... while (с примерами)

В этой статье мы узнаем о циклах while и do… while в C #, их использовании и различиях между ними.

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

Лучшее решение такой проблемы - петля. Циклы используются в программировании для многократного выполнения определенного блока операторов до тех пор, пока не будет выполнено какое-либо условие.

В этой статье мы научимся использовать циклы while в C #.

C # цикл while

В то время как ключевое слово используется для создания то время как цикл в C #. Синтаксис цикла while:

 while (test-expression) (// тело while) 

Как работает цикл while?

  1. Цикл while в C # состоит из test-expression.
  2. Если test-expressionоценивается как true,
    1. операторы внутри цикла while выполняются.
    2. после выполнения test-expressionснова оценивается.
  3. Если 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?

  1. Сначала выполняется тело цикла do… while.
  2. Затем test-expressionоценивается.
  3. Если test-expressionесть true, выполняется тело цикла.
  4. Когда 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); 

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

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

Интересные статьи...