Операторы цикла. Цикл 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; просмотров: 788;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.