Завершение цикла while

Завершение цикла while

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

index = 1;

while(index < 5)

printf("Доброе утро! ");

     Данный фрагмент программы печатает это радостное сообщение бесконечное число раз, поскольку в цикле отсутствуют конструкции, изменяющие величину переменной index, которой было присвоено значение 1.

index = 1;

while(--index < 5)

printf("Как колеблются старые атомы! ");

     И этот фрагмент программы работает ненамного лучше. Значение переменной index в нем изменяется, но в "неправильном" направлении! Единственным утешением здесь служит тот факт, что выполнение данного куска программы в конце концов завершится. Это произойдет, когда величина переменной index станет меньше наименьшего отрицательного числа, допустимого в системе.

     Цикл while является "условным" циклом, использующим предусловие (т.е. условие на входе). Он называется условным, потому что выполнение оператора зависит от истинности условия, описываемого с помощью выражения. Действительно ли значение переменной index меньше 5? Является ли последний введенный символ признаком EOF? Подобное выражение задает предусловие, поскольку выполнение этого условия должно быть проверено перед началом выполнения тела цикла. В ситуации, аналогичной приведенной ниже, тело цикла не выполнится ни разу, потому что используемое условие с самого начала является ложным.

index = 10;

while(index++ < 5)

printf(" Желаю хорошо провести день. ");

Измените первую строку на

index = 3;

и вы получите работающую программу.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4.1.1 Процессы жизненного цикла ПО

Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России


R.6.5 Операторы цикла

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.6.5 Операторы цикла Эти операторы задают виды цикла.оператор-цикла: while ( выражение ) оператор do оператор while ( выражение ) for ( оператор-иниц выражение opt ; выражение opt ) оператороператор-иниц: оператор-выражение оператор-описаниеОбратите внимание, что конструкция


Инварианты и варианты цикла

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Инварианты и варианты цикла Наши следующие и последние конструкции утверждений помогут строить корректные циклы. Эти конструкции являются прекрасным дополнением рассмотренных ранее механизмов. Поскольку они не являются специфической частью ОО-метода, то вы вправе


Синтаксис цикла

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Синтаксис цикла Синтаксис цикла непосредственно следует из предшествующих соображений, определяющих ингредиенты цикла. Он будет включать элементы, отмеченные как необходимые.[x]. Инвариант цикла inv - утверждение.[x]. Условие выхода exit, чья конъюнкция с inv дает желаемую


Прерывание и перезапуск цикла

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

Прерывание и перезапуск цикла Иногда бывает нужно прервать выполнение цикла. Для этого JavaScript предоставляет Web-программистам операторы break и continue.Оператор прерывания break позволяет прервать выполнение цикла и перейти к следующему за ним выражению:while (a < 100) {a = a * i + 2;if (a


Задание шага цикла

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Задание шага цикла Полный синтаксис оператора For. . .Next включает необязательное ключевое слово Step (шаг) в первой строке структуры, как, например, в следующем фрагменте программного кода: Sub ListOddNumbers() Dim strOddNumbers As String For F = 1 To 33 Step 2 StrOddNumbers = strOddNumbers 5 F & " " Next F MsgBox "Нечетными


Оператор цикла с предусловием while

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Оператор цикла с предусловием while Синтаксис:while (<выражение>) <оператор>Действие:Тело оператора цикла while выполняется до тех пор, пока значение <выражения> не станет ложным (т.е. равным нулю). Вначале вычисляется <выражение>. Если <выражение> изначально ложно,


Оператор цикла с постусловием do

Из книги Конец холивара. Pascal vs C автора Кривцов М. А.

Оператор цикла с постусловием do Синтаксис:do <оператор> while (<выражение>);Действие:Тело оператора цикла do выполняется один или несколько раз до тех пор, пока значение <выражения> не станет ложным (равным нулю). Вначале выполняется тело цикла — <оператор>, затем


5.5. Инструкция цикла for

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

5.5. Инструкция цикла for Как мы видели, выполнение программы часто состоит в повторении последовательности инструкций - до тех пор, пока некоторое условие остается истинным. Например, мы читаем и обрабатываем записи файла, пока не дойдем до его конца, перебираем элементы


Операторы цикла

Из книги автора

Операторы цикла Для многократного выполнения кода используют операторы цикла. Кроме того, циклы предоставляют удобные средства для манипулирования массивами.Цикл forОператор for служит для создания цикла. Он имеет следующий синтаксис:for (выражение инициализации;


2.2. Повторение (операторы цикла)

Из книги автора

2.2. Повторение (операторы цикла) Циклом называется группа операторов, которая выполняется повторно. После каждого повторения проверяется условие, называемое условием окончания цикла, по которому принимается решение продолжать повторение или закончить