Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Такой оператор есть практически во всех языках программирования, но в 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!