Учебники

8) C Петли

Что такое петли?

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

В этом уроке вы узнаете

Типы петель

В зависимости от положения управляющего оператора в программе цикл классифицируется на два типа:

1. Ввод контролируемой петли

2. Выход из контролируемой петли

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

В контролируемом выходе цикле условие проверяется после выполнения тела цикла. Он также называется циклом пост-проверки.

Образец петли

Условия управления должны быть четко определены и определены, иначе цикл будет выполняться бесконечное число раз. Цикл, который не прекращает выполнение и обрабатывает операторы несколько раз, называется бесконечным циклом . Бесконечный цикл также называется « Бесконечный цикл ». Ниже приведены некоторые характеристики бесконечного цикла:

1. Условие завершения не указано.

2. Указанные условия никогда не выполняются.

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

Язык программирования «C» предоставляет нам три типа конструкций цикла:

1. Цикл пока

2. Цикл do-while

3. Цикл для

Пока петля

Цикл while — самая простая зацикливающаяся структура. Основной формат цикла while следующий:

while (condition) {
             statements;
}

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

После выхода из цикла управление переходит к операторам, которые находятся сразу после цикла. Тело цикла может содержать более одного оператора. Если оно содержит только одно утверждение, то фигурные скобки не являются обязательными. Это хорошая практика, хотя использовать фигурные скобки, даже если у нас есть одно утверждение в теле.

В цикле while, если условие не истинно, тело цикла не будет выполнено ни разу. В цикле do while дело обстоит иначе, что мы вскоре увидим.

Следующая программа иллюстрирует цикл while:

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	while(num<=10)	//while loop with condition
	{
		printf("%d\n",num);
		num++;		//incrementing operation
	}
	return 0;
}

Вывод:

1
2
3
4
5
6
7
8
9
10

Приведенная выше программа иллюстрирует использование цикла while. В приведенной выше программе мы напечатали серии чисел от 1 до 10, используя цикл while.

  1. Мы инициализировали переменную num со значением 1. Мы будем печатать от 1 до 10, поэтому переменная инициализируется со значением 1. Если вы хотите печатать от 0, присвойте значение 0 во время инициализации.
  2. В цикле while мы предоставили условие (num <= 10), которое означает, что цикл будет выполнять тело до тех пор, пока значение num не станет равным 10. После этого цикл будет прерван, и управление выйдет за пределы цикла.
  3. В теле цикла у нас есть функция print для печати нашего числа и операция приращения для увеличения значения при выполнении цикла. Начальное значение num равно 1, после выполнения оно станет равным 2, а во время следующего выполнения оно станет равным 3. Этот процесс будет продолжаться до тех пор, пока значение не станет равным 10, а затем он напечатает серию на консоли и завершит цикл. ,

\ n используется для форматирования, что означает, что значение будет напечатано в новой строке.

Цикл «пока»

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

Основной формат цикла while следующий:

 do {
  statements
} while (expression);

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

В цикле do-while тело цикла всегда выполняется хотя бы один раз. После того, как тело выполнено, оно проверяет условие. Если условие истинно, оно снова выполнит тело цикла, в противном случае управление будет передано из цикла.

Подобно циклу while, когда элемент управления выходит из цикла, операторы, которые находятся сразу после выполнения цикла.

Критическое различие между циклом while и do-while состоит в том, что в цикле while время while записывается в начале. В цикле do-while условие while записывается в конце и заканчивается точкой с запятой (;)

Следующая программа иллюстрирует работу цикла do-while:

Мы собираемся напечатать таблицу с номером 2, используя цикл do while.

#include<stdio.h>
#include<conio.h>
int main()
{
	int num=1;	//initializing the variable
	do	//do-while loop 
	{
		printf("%d\n",2*num);
		num++;		//incrementing operation
	}while(num<=10);
	return 0;
}

Вывод:

2
4
6
8
10
12
14
16
18
20

В приведенном выше примере мы напечатали таблицу умножения 2 с использованием цикла do-while. Посмотрим, как программа смогла напечатать серию.

  1. Сначала мы инициализировали переменную ‘num’ значением 1. Затем мы написали цикл do-while.
  2. В цикле у нас есть функция печати, которая будет печатать серию путем умножения значения num на 2.
  3. После каждого приращения значение num будет увеличиваться на 1, и оно будет напечатано на экране.
  4. Первоначально значение num равно 1. В теле цикла функция печати будет выполняться следующим образом: 2 * num, где num = 1, затем 2 * 1 = 2, следовательно, будет напечатано значение два. Это будет продолжаться до тех пор, пока значение num не станет равным 10. После того, как этот цикл будет завершен, и будет выполнен оператор, который находится сразу после цикла. В этом случае верните 0.

Для цикла

Цикл for — это более эффективная структура цикла в программировании на «C». Общая структура цикла for выглядит следующим образом:

for (initial value; condition; incrementation or decrementation ) 
{
  statements;
}
  • Начальное значение цикла for выполняется только один раз.
  • Условие является логическим выражением, которое проверяет и сравнивает счетчик с фиксированным значением после каждой итерации, останавливая цикл for при возвращении значения false.
  • Увеличение / уменьшение увеличивает (или уменьшает) счетчик на заданное значение.

Следующая программа иллюстрирует использование простого цикла for:

#include<stdio.h>
int main()
{
	int number;
	for(number=1;number<=10;number++)	//for loop to print 1-10 numbers
	{
		printf("%d\n",number);		//to print the number
	}
	return 0;
}

Вывод:

1
2
3
4
5
6
7
8
9
10

Вышеприведенная программа печатает номерные серии от 1 до 10, используя цикл for.

  1. Мы объявили переменную типа данных int для хранения значений.
  2. В цикле for в части инициализации мы присвоили значение 1 номеру переменной. В части условия мы указали наше условие, а затем часть приращения.
  3. В теле цикла у нас есть функция print для печати чисел в новой строке консоли. У нас есть значение, сохраненное в числе, после первой итерации значение будет увеличено, и оно станет равным 2. Теперь номер переменной имеет значение 2. Условие будет перепроверено, и поскольку условие истинно, будет выполнен цикл, и он напечатает два на экране. Этот цикл будет продолжаться до тех пор, пока значение переменной не станет равным 10. После этого цикл будет прерван, и на экране будет напечатана серия из 1-10.

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

Например:

for (x = 0, y = num; x < y; i++, y--) { 
  statements; 
}

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

Например:

int i=0;
int max = 10;
for (; i < max; i++) {
  printf("%d\n", i);
}

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

Рассмотрим следующий пример, в котором для вложенных циклов выводится таблица умножения:

#include <stdio.h>
int main() {
int i, j;
int table = 2;
int max = 5;
for (i = 1; i <= table; i++) { // outer loop
  for (j = 0; j <= max; j++) { // inner loop
    printf("%d x %d = %d\n", i, j, i*j);
  }
  printf("\n"); /* blank line between tables */
}}

Вывод:

1 x 0 = 0
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5

2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10

Вложенность циклов for может быть выполнена на любом уровне. Вложенные циклы должны иметь соответствующие отступы, чтобы сделать код читабельным. В некоторых версиях «C» вложенность ограничена 15 циклами, но некоторые предоставляют больше.

Вложенные циклы в основном используются в приложениях с массивами, которые мы увидим в следующих уроках.

Перерыв Заявление

Оператор break используется главным образом в операторе switch. Это также полезно для немедленной остановки цикла.

Мы рассмотрим следующую программу, которая вводит разрыв для выхода из цикла while:

#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
  if (num == 3)
    break;
  printf("%d\n", num);
  num--;
}}

Вывод:

5
4

Продолжить заявление

Если вы хотите перейти к следующей итерации, но остаться в цикле, вы должны использовать оператор continue.

Например:

#include <stdio.h>
int main() {
int nb = 7;
while (nb > 0) {
  nb--;
  if (nb == 5)
    continue;
 printf("%d\n", nb);
}}

Вывод:

6
4
3
2
1

Итак, значение 5 пропущено.

Какой цикл выбрать?

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

  • Проанализируйте проблему и проверьте, требует ли она предтестового или посттестового цикла.
  • Если требуется предварительное тестирование, используйте время или цикл.
  • Если требуется пост-тест, используйте цикл do-while.

Резюме

  • Цикл является одним из ключевых понятий на любом языке программирования.
  • Он выполняет блок операторов несколько раз, пока условие не станет ложным.
  • Петли бывают двух типов: с контролем входа и выхода.
  • Программирование ‘C’ дает нам 1), в то время как 2) do-while и 3) for loop.
  • Цикл For и while — это циклы, контролируемые входом.
  • Do-while — это управляемый выходом цикл.