Лекция: Общее знакомство
Вид материала | Лекция |
СодержаниеЦикл со счетчиком Подведем итоги Операция "запятая" |
- Жизнь Клима Самгина (общее знакомство) утопия, 27.58kb.
- Лекция Общее знакомство с организмом человека Человек и окружающая среда, 81.53kb.
- Цель дисциплины, 24.29kb.
- Тема пояснения, 99.97kb.
- Общее знакомство с цветковыми растениями, 1421.63kb.
- Образовательные программы : дошкольное общее образование, начальное общее образование,, 549.09kb.
- План «курсы трейдинга» День 1 Вступительная лекция Знакомство. Базовые понятие о трейдинге., 56.64kb.
- Ю. Б. Введение в общую психологию. М., 2000. Лекция, 413.91kb.
- Урок литературы по рассказу саши черного "в лунную ночь", 85.66kb.
- Лекция со студентами асс, 33.36kb.
![]() | ||
Несмотря на внешнее сходство с итеративными циклами for языков Паскаль и Ада или итеративными циклами do языков Фортран или ПЛ/1, цикл for языка Си не является их семантической копией. Цикл for языка Си обладает большей общностью, чем циклы for и do других языков. В отличии от этих циклов, в общем случае число итераций в цикле for языка Си не может быть определено до выполнения этого цикла. Цикл for и его альтернатива цикл while семантически почти эквивалентны, но, как указывается в работе (Ritchie, D.M. 1980. The Programming Language - Reference Manual/. AT&T Bell Laboratories, Murray Hill, N.J. 07974), не идентичны. Например, рассмотрим случай, когда оператор s является оператором continue или составным оператором, содержащим оператор continue. Действие оператора continue состоит в переходе к концу цикла, что имеет различные последствия для цикла for и его эквивалента в форме цикла while. В случае с циклом for выражение e3 выполняется до вычисления значения выражения e2, в то время как в эквивалентном цикле while выражение e3 пропускается. Гибкость конструкции for - следствие способа использования выражений в спецификации цикла. До сих пор первое выражение применялось для инициализации счетчика, второе - для задания его граничного значения, а третье - для увеличения его текущего значения на 1. Но кроме этой возможности существует еще и много других возможностей его применения, девять из которых мы приведем ниже.
printf("Пуск! \n");
printf("%d\n",n);
printf("Величина кода ASCII для %с равна %d.\n",ch,ch); При выполнении этого оператора будут выведены на печать все буквы от а до z вместе с их кодами ASCII. Этот оператор работает, поскольку символы в памяти машины размещаются в виде чисел, и потому в данном фрагменте ведется счет с использованием целых чисел.
} А теперь заменим спецификацию for(num=1; num<=6; num++) на for(num=1; num<6; num++) Это было бы целесообразно в случае, если бы нас больше занимало ограничение максимального значения диапазона кубов чисел, а не количество итераций.
printf("Ваш долг теперь %3.2f.\n",x); В этом фрагменте программы значение переменной x умножается на 1.1 на каждом шаге цикла, что увеличивает ее на 10%. Результат выглядит следующим образом: Ваш долг теперь 100.00. Ваш долг теперь 110.00. Ваш долг теперь 121.00. Ваш долг теперь 133.10. Ваш долг теперь 146.41.
printf("%10d %10d\n",x,y); Обратите внимание, что в спецификации цикла проверяется значение y, а не x. В каждом из трех выражений, управляющих работой цикла for, могут использоваться любые переменные.
} будет выполняться бесконечное число раз, поскольку пустое условие всегда считается истинным.
printf("Это как раз то, что я хочу!\n"); В этом фрагменте первое сообщение оказывается выведенным на печать один раз, а затем осуществляется прием вводимых чисел до тех пор, пока не поступит число 6.
for(n=1; n<1000; n+t) И если после нескольких итераций наша программа решает, что величина t слишком мала или велика, то оператор if внутри цикла может изменить значение параметра. В диалоговой программе пользователь может изменить этот параметр в процессе выполнения цикла. | ||
![]() |
^ Подведем итоги. В операторе for используются три выражения, управляющие работой цикла. Они разделены символом "точка с запятой". Инициализирующее выражение вычисляется только один раз до начала выполнения какого-нибудь из операторов цикла. Если проверяемое выражение оказывается истинным, или не равным нулю, тело цикла выполняется один раз. Затем вычисляется величина корректируемого выражения, и значение проверяемого выражения определяется вновь. Оператор for - это цикл с предусловием. Решение о том, выполнить ли в очередной раз тело цикла или нет, принимается до начала его прохождения. Поэтому может случиться так, что тело цикла не будет выполнено ни разу. Оператор, образующий тело цикла, может быть как простым, так и составным.
^ Операция "запятая" увеличивает гибкость использования цикла for, позволяя включить в его спецификацию несколько инициализирующих или корректирующих выражений.