Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор for



Такой оператор есть практически во всех языках программирования, но в C++ он имеет больше возможностей.

Пример 5. Вывести кубы целых чисел от 1 до 100. В каждой строке экрана выводить по 10 пар число и его куб. Первый вариант с помощью while:

int k=1; while (k<=100)

{ cout<< k <<” “<< k*k*k;

if (k%10==0) cout<<endl; k++; }

Этот цикл можно записать по–другому, используя оператор цикла for:

int k; for (k=1; k<=100; k++)

{ cout<< k <<” “<< k*k*k;

if (k%10==0) cout<<endl; }

Этот вариант работает аналогично предыдущему, но первый вариант более понятный и естественный.

Общий вид оператора цикла for следующий:

for (выражение1; выражение2; выражение3)

{ оператор1; оператор2; …

операторK; }

В первомвыражении записываются одна или несколько разделённых запятой операций присваивания для установки начальных значений переменным (в примере 1 — переменной k). Эта часть выполняется один раз вне данного цикла, то есть в цикле не повторяется. Начальные значения можно определить до оператора for, и тогда выражение1 может отсутствовать, но символ “;” обязательно записывается. Поэтому пример 5 можно записать и так:

int k=1; for (; k<=100; k++)

{ cout<< k <<” “<< k*k*k;

if (k%10==0) cout<<endl; }

Наоборот, в первом выражении может быть несколько присваиваний, разделённых “запятой”. Примеры будут приведены позже.

Второе выражение, как правило, является логическим, но не обязательно, и определяет условие, при истинности которого цикл продолжается. Если условий несколько, они соединяются логическими операциями (&&, ||,!). Если выражение не логическое, то цикл продолжается, если его значение не равно нулю. Вычисление и проверка этого выражения, в отличие от первого, повторяется каждый раз перед выполнением тела цикла. Поэтому если в самом начале оно ложно, код цикла может вообще не выполняться. Это выражение также может отсутствовать, но символ “точка с запятой” в таком случае записывается обязательно. Второе выражение заголовка оператора for может также отсутствовать. Тогда условие выхода из цикла, противоположное тому, которое было в заголовке for, можно записать внутри тела цикла, а выход осуществляется с помощью break. Для примера 5 это может выглядеть таким образом:

int k; for (k=1;; k++)

{ if (k>100) break; cout<< k <<” “<< k*k*k;

if (k%10==0) cout<<endl; }

С помощью третьего выражения заголовка цикла изменяется значение одной или нескольких переменных через запятую. Она, как и вторая часть, повторяется и может также отсутствовать. В последнем случае символ “;” сохраняется, а изменение переменных можно записать в теле цикла. Можно записать ещё один вариант примера 5:

int k; for (k=1; k<=100;)

{ cout<< k <<” “<< k*k*k;

if (k%10==0) cout<<endl; k++; }

Благодаря такой возможности изменение значений параметров цикла (в нашем примере k) можно выполнять не обязательно после всех повторяющихся операторов, а в любом месте тела цикла.

Отметим другие особенности оператора for.

Могут отсутствовать все три выражения заголовка цикла for (см. пример 1 следующей главы, вариант 5). Например, ввод символов с клавиатуры до символа “.” (см. пример 3) можно записать так:

for (;;) { ch=getchar(); if (ch==’.’) break; }

Наоборот, может отсутствовать тело цикла. Его можно записать в третьей части заголовка (см. пример 1 следующей главы, варианты 3, 4). И только в этом случае после заголовка оператора for записывается символ “;”. Это можно использовать, например, для создания задержки при выполнении программы: for (t=0; t<10000; t++);

Параметр цикла не обязательно должен быть целым, символьным и перечисляемым, как в Pascal. Можно использовать и переменную вещественного типа.

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





Дата публикования: 2015-02-18; Прочитано: 289 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...