Операторы цикла. Цикл while.
Цикл while представляет собой фактически тот же цикл for, но без частей инициализации и обновления переменной цикла. При этом у него имеется только условие продолжения цикла и тело цикла. Общая форма записи оператора цикла while имеет следующий вид.
while(условие продолжения цикла)
Тело цикла
Прежде всего, программа проверяет условие продолжения цикла. Если в результате вычисления этого выражения получается логическое значение true, тогда программа выполняет операторы в теле цикла. Подобно циклу for, тело данного цикла состоит либо из одного оператора, либо из блока, обрамляемого парой фигурных скобок.
После завершения выполнения тела цикла программа возвращается к анализу условия продолжения циклаи вычисляет его снова. Если данное условие оказывается ненулевым, то программа снова выполняет тело цикла. Подобный цикл проверки и выполнения продолжается до тех пор, пока в результате вычисления выражения условия не получится логическое значение false.
Подобно циклу for, while является циклом с входным условием продолжения цикла (цикл с предусловием). Таким образом, если в результате вычисления условие продолжения циклаоказывается ложным с самого начала, программа вообще не выполняет тело цикла.
Пример.
int i=0;while(i<100)
{
printf("i = %d\n", i);
i++;
}Результат: будут выведены все числа в диапазоне от 0 до 99.
Частные случаи применения цикла while.
Бесконечный цикл.
While(1)
{
// операторы
}
Цикл задержки по времени.
long i=0;
while(i<10000)
{
i++;
// операторы
}
Операторы цикла. Цикл do while.
От двух предыдущих циклов он отличается тем, что это цикл с постусловием. Это означает, что сначала выполняется тело цикла и только после этого оценивается условие продолжения цикла. Если в результате оценки получается логическое значение false, тогда данный цикл завершается. В противном случае начинается новый этап выполнения и проверки цикла. Подобный цикл всегда выполняется, по крайней мере, один раз, поскольку процесс выполнения программы должен пройти тело цикла, прежде чем будет осуществлена проверка условия продолжения. Ниже приведен синтаксис рассматриваемого цикла:
Do
Тело цикла
While (условие продолжения цикла);
Тело рассматриваемого цикла может состоять из одного оператора или ограниченного фигурными скобками блока операторов.
Использовать цикл do while лучше всего в тех случаях, когда должна быть выполнена по крайней мере одна итерация.
Пример.
int i=0;Do
{
printf("i = %d\n", i);
i++;
}while(i<100);
Одна из самых неприятных особенностей операторов цикла заключается в возможности образования бесконечного цикла или, как говорят, в зацикливании программы. Причина этого в том, что значение условия продолжения цикла из-за ошибки в программе никогда не становится ложным.
Пример:
int i=0;while(i<100);
{
i++;
// операторы
}
Здесь из-за незаметно указанного знака точки с запятой после оператора while компилятор полагает, что повторяемый в цикле оператор – это не составной оператор, заключенный в фигурные скобки, а пустой оператор. Значение i не увеличивается, и логическое выражение (i<100) при проверке всегда дает значение ИСТИНА.
Операторы цикла.
Дата добавления: 2016-04-22; просмотров: 777;