For (выражение1; выражение2; выражениеЗ) оператор



где выражение1 задает начальное значение переменной, управляющей циклом, выражение2 является условием продолжения цикла, а выражениеЗ изменяет управляющую переменную. В большинстве случаев структуру for можно представить эквивалентной ей структурой while следующим образом:

Выражение1;

while(Выражение2) {

оператор

Выражение3;

}

Иногда выражение1 и выражение3 представляются как списки выражений, разделенных запятой. В данном случае запятая используется как опе­рация запятая или операция последования, гарантирующая, что список вы­ражений будет вычисляться слева направо. Операция последования имеет самый низкий приоритет среди всех операций C++. Значение и тип списка выражений, разделенных запятыми, равны значению и типу самого правого выражения в списке. Операция последования наиболее часто используется в структуре for. Ее основное назначение — помочь программисту использо­вать несколько выражений задания начальных значений и (или) несколько выражений приращения переменных. Например, в одной структуре for может быть несколько управляющих переменных, которым надо задавать начальное значение и которые надо изменять.

Следует помещать в разделы задания начальных значений и изменения переменных струк­туры for только выражения, относящиеся к управляющей переменной. Манипуляции с другими переменными должны размещаться или до цикла (если они выполняются только один раз подобно операторам задания начальных значений), или внутри тела цикла (если они должны выполняться в каждом цикле, как, например, операторы инкремента или декремента).

Выражения в структуре for являются необязательными. Если выраже-ние2 отсутствует, C++ предполагает, что условие продолжения цикла всегда истинно и таким образом создается бесконечно повторяющийся цикл. Иногда может отсутствовать выражение1 если начальное значение управляющей переменной задано где-то в другом месте программы. Может отсутствовать и выражение3, если приращение переменной осуществляется операторами в теле структуры for или если приращение не требуется. Выражение для при­ращения переменной в структуре for действует так же, как автономный опе­ратор в конце тела for. Следовательно, все выражения

counter = counter + 1

counter += 1

++counter

counter++

эквивалентны в той части структуры for, которая определяет приращение. Многие программисты предпочитают форму counter++, поскольку прираще­ние срабатывает после выполнения тела цикла. Поэтому постфиксная форма представляется более естественной. Поскольку изменяемая переменная здесь не входит в какое-то выражение, обе формы инкремента равноправны. В структуре for должны применяться точки с запятой.

 «Приращение» структуры for может быть отрицательным (в этом случае в действительности происходит не приращение, а уменьшение переменной, управляющей циклом).

Если условие продолжения цикла с самого начала не удовлетворяется, то операторы тела структуры for не выполняются и управление передается оператору, следующему за for.

Управляющая переменная иногда печатается или используется в вычис­лениях в теле структуры for, но обычно это делается без изменений ее ве­личины. Чаще управляющая переменная используется только для контроля числа повторений и никогда не упоминается в теле структуры.

Хотя управляющая переменная может изменяться в теле цикла for, избегайте делать это, так как такая практика приводит к неявным, неочевидным ошибкам.

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

Структура повторения do/while похожа на структуру while. В структуре while условие продолжения циклов проверяется в начале цикла, до того, как выполняется тело цикла. В структуре do/while проверка условия про­должения циклов производится после того, как тело цикла выполнено, сле­довательно, тело цикла будет выполнено по крайней мере один раз. Когда do/while завершается, выполнение программы продолжается с оператора, сле­дующего за предложением while. Отметим, что в структуре do/while нет не­обходимости использовать фигурные скобки, если тело состоит только из одного оператора. Но фигурные скобки обычно все же ставят, чтобы избежать путаницы между структурами while и do/while. Например,

while (условие)

обычно рассматривается как заголовок структуры while. Структура do/while без фигурных скобок и с единственным оператором в теле имеет вид

do

оператор while(условие);

что может привести к путанице. Последняя строка — while (условие); может ошибочно интерпретироваться как заголовок структуры while, содержащий пустой оператор. Таким образом, чтобы избежать путаницы, структура do/while даже с одним оператором часто записывается в виде

do {

оператор } while (условие);

Некоторые программисты всегда включают фигурные скобки в структуру do/while, даже если в них нет необходимости. Это помогает устранить двусмысленность, про­истекающую из совпадения предложений структуры while и структуры do/while, содержащей один оператор.

Следующая программа использует структуру do/while, чтобы напечатать числа от 1 до 10. Обратите внимание, что к управляющей переменной counter в проверке окончания цикла применяется инкремент в префиксной форме. Отметьте также использование фигурных скобок, заключающих единствен­ный оператор в теле do/while.

// Применение структуры повторения do/while

#include <iostream.h>

main() {

int counter = 1;

do {

cout << counter << " ";

} while(++counter <= 10);

return 0;

}

Операторы break и continue

Операторы break и continue изменяют поток управления. Когда оператор break выполняется в структурах while, for, do/while или switch, происходит немедленный выход из структуры. Программа продолжает выполнение с пер­вого оператора после структуры. Обычное назначение оператора break — досрочно прерывать цикл или пропустить оставшуюся часть структуры switch.

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

Оператор выбора if – else

Оператор выбора имеет следующий синтаксис


Дата добавления: 2019-09-13; просмотров: 206; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!