Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 40

for (int i = 0; i < 100; i += 10) (...}

После того, как вы увидели цикл for в действии, не составит большого труда применить те же принципы к циклам while и do-while. Сейчас мы перей­дем к их рассмотрению.

Цикл while

Цикл while отличается от цикла for тем, что он содержит только условие, которое проверяется в начале каждой итерации. Пока условие истинно, цикл выполняется. Рассмотрим пример:

int х;

while (х < 1000) {

х = DoSomeCalculation();

}

В этом примере я вызываю функцию, которая когда-либо должна воз­вратить значение, большее 1000. Пока возвращаемое значение меньше 1000, цикл while продолжает выполняться. Как только переменная х примет зна­чение, большее или равное 1000, условие станет ложным и выполнение про­граммы продолжится с первой строки за закрывающей фигурной скобкой цикла. Обычно условное выражение в циклах while содержит переменную типа bool, значение которой изменяется внутри тела цикла:

bool done = false; while (!done) {

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

done = SomeFunctionReturningABool();

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

}

Ожидается, что в какой-то момент переменная done примет значение false и цикл закончится. Программа из листинга 2.2 иллюстрирует исполь­зование цикла while.

Листинг 2.2. WHILETST.CPP

Оператор цикла while:

while (cond_expr) { statements;

}

Пока условное выражение cond_expr имеет значение true (не равно нулю), выполняется блок statements. Цикл должен быть инициализирован до оператора while, а изменение переменной цикла должно происходить внутри тела цикла. Цикл заканчивается, как только выражение cond_expr примет значение false.

Цикл do-while

Цикл do-while похож на цикл while. Однако между ними есть сущест­венное различие. Как вы могли видеть из листинга 2.2, в цикле while условие проверяется до начала выполнения тела цикла. В случае цикла do-while условное выражение вычисляется в нижней части цикла:

Web-дизайн (с) 2010 - 2017 All rights reserved