Цикл с постусловием do...While

Общая форма записи

Do

{

блок операций;

} while(выражение);

Цикл с постусловием

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

Использовать цикл do...while лучше использовать в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Пример. Ввести число от 0 до 10

#include <stdio.h>
#include <stdlib.h>
int main() {

int num;

system("chcp 1251");

system("cls");

do

{

printf("Введите число от 0 до 10: ");

scanf("%d", &num);

}

while((num < 0) || (num > 10));

printf("Вы ввели число %d", num);

getchar(); getchar();

return 0;
}

Параметрический цикл for

Общая форма записи

for (инициализация параметра; проверка условия окончания; коррекция параметра) {

блок операций;

}

for — параметрический цикл (цикл с фиксированным числом повторений). Для организации такого цикла необходимо осуществить три операции:

· инициализация параметра - присваивание параметру цикла начального значения;

· проверка условия окончания - сравнение величины параметра с некоторым граничным значением;

· коррекция параметра - изменение значения параметра при каждом прохождении тела цикла.

Эти три операции записываются в скобках и разделяются точкой с запятой (;). Как правило, параметром цикла является целочисленная переменная.
Инициализация параметра осуществляется только один раз — когда цикл for начинает выполняться. Проверка условия окончания осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным (равным нулю), цикл завершается. Коррекция параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться.

Пример

#include <stdio.h>
int main() {

int num;

for(num = 1; num < 5; num++)

printf("num = %d\n",num);

getchar();

return 0;
}

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

#include <stdio.h>
int main()

{

int num = 1;

for(; num < 5; num++)

printf("num = %d\n",num);

getchar();

return 0;
}

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

#include <stdio.h>
int main()

{

int i,j;

for(i = 1, j=2; i < 5; i++, j=j+2)

printf("i = %d j = %d\n",i,j);

getchar();

return 0;
}

В Си допускаются вложенные циклы, то есть когда один цикл находится внутри другого:

for ( i=0; i<n; i++) { // цикл 1

for( j=0; j<n; j++) { // цикл 2

// блок операций цикла 2;

}

// блок операций цикла 1;
}

Пример: Вывести числа от 0 до 99

#include <stdio.h>
#include <stdlib.h>
int main()

{

unsigned int i,j;

for(i=0; i<10; i++) {

for(j=0; j<10; j++) {

printf("%2d ",i*10+j);

}

printf("\n"); // перевод строки

}

getchar();

return 0;
}

Результат выполнения
Цикл с постусловием do...While - student2.ru

Наши рекомендации