Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бочков C.. Язык программирования Си для персонального компьютера - royallib.ru.doc
Скачиваний:
40
Добавлен:
11.03.2016
Размер:
901.98 Кб
Скачать

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

Синтаксис:

while (<выражение >) < оператор >

Действие:

Тело оператора цикла while выполняется до тех пор, пока значение <выражения > не станет ложным (т.е. равным нулю). Вначале вычисляется <выражение >. Если <выражение > изначально ложно, то тело оператора while вообще не выполняется и управление сразу передается на следующий за телом цикла оператор программы. Если <выражение > истинно, то выполняется тело цикла. Перед каждым следующим выполнением тела цикла <выражение > вычисляется заново. Этот процесс повторяется до тех пор, пока <выражение > не станет ложкам. Оператор цикла while может также завершиться при выполнении операторов break , goto , return внутри своего тела.

Пример:

while (i > = 0) {

slring1[i] = string2[i];

i--;

}

В вышеприведенном примере элементы массива string2 копируются в массив string1 . Если i больше или равно нулю, то производится копирование (путем присваивания) очередного элемента, после чего i декрементируется. Когда i становится меньше нуля, выполнение оператора while завершается.

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

Синтаксис:

do < оператор > while (< выражение > );

Действие:

Тело оператора цикла do выполняется один или несколько раз до тех пор, пока значение <выражения > не станет ложным (равным нулю). Вначале выполняется тело цикла — <оператор >, затем вычисляется условие — <выражение >. Если выражение ложно, то оператор цикла do завершается и управление передается следующему за оператором while оператору программы. Если значение выражения истинно (не равно нулю), то тело цикла выполняется снова, и снова вычисляется выражение. Выполнение тела оператора цикла do повторяется до тех пор, пока выражение не станет ложным. Оператор do может также завершиться при выполнении в своем теле операторов break , goto , return .

Пример:

do {

у = f(x);

х--;

} while(x > 0);

Вначале выполняется составной оператор. Затем вычисляется выражение х>0. Если оно истинно, то составной оператор выполняется снова, и снопа вычисляется выражение х>0. Тело оператора цикла do выполняется до тех пор, пока значение х не станет меньше или равно нулю.

Оператор продолжения continue

Синтаксис:

continue;

Действие:

Оператор продолжения continue передает управление на следующую итерацию в операторах цикла do , for , while . Он может появиться только в теле этих операторов. Остающиеся в теле цикла операторы при этом не выполняются. В операторах цикла do и while следующая итерация начинается с вычисления условного выражения. Для оператора for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.

Пример:

while(i-- > 0) {

х = f(i);

if(х == 1)

continue;

else

y = x * x;

}

Тело оператора цикла while выполняется, если i больше нуля. Сначала значение f(i) присваивается х ; затем, если х не равен 1 , то у присваивается значение квадрата х , и управление передается в заголовок цикла, т. е. на вычисление выражения i-->0 . Если же х равен 1 , выполняется оператор продолжения continue , и выполнение возобновляется с заголовка оператора цикла while , без вычисления квадрата х .