Формат оператора прост: while (выражение) оператор
Выражение должно быть логического типа. Например, это может быть операция отношения или просто логическая переменная. Если результат вычисления выражения равен true, выполняется простой или составной оператор (блок). Эти действия повторяются до того момента, пока результатом выражения не станет значение false. После окончания цикла управление передается на следующий за ним оператор.
Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу.
Цикл с постусловием do
Цикл с постусловием реализует структурную схему, приведенную на рис. 4.4, б, и имеет вид
do оператор while выражение;
Сначала выполняется простой или составной оператор, образующий тело цикла, а затем вычисляется выражение (оно должно иметь тип bool). Если выражение истинно, тело цикла выполняется еще раз и проверка повторяется. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления.
|
|
Этот вид цикла применяется в тех случаях, когда тело цикла необходимо обязательно выполнить хотя бы один раз, например, если в цикле вводятся данные и выполняется их проверка. Если же такой необходимости нет, предпочтитель-нее пользоваться циклом с предусловием.
Пример программы, выполняющей проверку ввода, приведен в листинге 4.5.
Цикл с параметром for
Цикл с параметром имеет следующий формат:
for (инициализация; выражение; модификации) оператор;
Инициализация служит для объявления величин, используемых в цикле, и присвоения им начальных значений. В этой части можно записать несколько операторов, разделенных запятой, например:
for (int i = 0, j = 20;...
int k, m;
for (k = 1, m = 0;...
Областью действия переменных, объявленных в части инициализации цикла, является цикл. Инициализация выполняется один раз в начале исполнения цикла. Выражение типа bool определяет условие выполнения цикла: если его результат равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.
Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую, например:
for (int i = 0, j = 20; i < 5 && j > 10; i++, j--)...
Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). Для примера вычислим сумму чисел от 1 до 100:
int s = 0;
for (int i = 1; i <- 100; i++)
s += i;