АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Оператор цикла с предусловием и коррекцией for

Читайте также:
  1. XIV. ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ
  2. В больших циклах подвиг «Стимфалийские птицы» проходит 1 год, в малых – 6 суток.
  3. В прошлом году российские операторы сотовой связи получили лицензии на предоставление услуг связи третьего поколения. Но это- лишь первый шаг к построению мобильной сети 3G.
  4. В) Технологический разрыв и модель жизненного цикла продукта.
  5. Взаимная ортогональность собственных функций эрмитовых операторов
  6. Виды жизненного цикла товаров
  7. Використання логічних операторів та операторів співвідношення
  8. Влияние жизненного цикла товара на прогнозирование деятельности предприятия
  9. Внешняя торговля мотоциклами и велосипедами
  10. Выпуск первого гидроцикла марки Sea-Doo
  11. Вычислительные операторы
  12. Глава 2. НЕЙРОЭНДОКРИННАЯ РЕГУЛЯЦИЯ МЕНСТРУАЛЬНОГО ЦИКЛА

 

Общий вид оператора:

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

код цикла;

где выражение 1 – инициализация счетчика (параметр цикла);

выражение 2 – условие продолжения счета;

выражение 3 – коррекция счетчика.

На рис. 7.2, а представлена схема работы цикла for, а на рис. 7.2, б – символ блок-схемы, использующийся для его обозначения.

 

Рис. 7.2. Схемы оператора цикла for:
а –
схема работы; б – блок-схема

Инициализация используется для присвоения счетчику (параметру цикла) начального значения.

Выражение 2 определяет условие выполнения цикла. Как и в предыдущих случаях, если его результат не нулевой («истина»), – то цикл выполняется, иначе – происходит выход из цикла.

Коррекция выполняется после каждой итерации цикла и служит для изменения параметра цикла.

Выражения 1, 2 и 3 могут отсутствовать (пустые выражения), но символы «;» опускать нельзя.

Например, для суммирования первых N натуральных чисел можно записать такой код:

sum = 0;

for (i = 1; i<=N; i++) sum+=i;

Заметим, что в выражении 1 переменную-счетчик можно декларировать. Например:

for (int i = 1; i<=N; i++)

Областью действия такой переменной будет код цикла.

Но в старых версиях компиляторов такие действия могут интерпретироваться иначе.

Цикл for эквивалентен последовательности инструкций:

выражение 1;

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

...

выражение 3;

}

а оператор for (; выражение 2;)

код цикла;

эквивалентен оператору while (выражение 2)

код цикла;

Если пропущено выражение 2, то цикл будет выполняться бесконечно, поскольку пустое условие всегда остается истинным. Бесконечный оператор: for (;;) код цикла;

эквивалентен оператору while (1) код цикла;

В заголовке оператора for может использоваться операция «запятая». Она позволяет включать в его выражения несколько операторов. Тогда рассмотренный пример суммирования первых N натуральных чисел можно записать в следующем виде:

for (sum = 0, i = 1; i<=N; sum+= i, i++);

Оператор for имеет следующие возможности:

– можно вести подсчет с помощью символов, а не только чисел:

for (ch = 'a'; ch <= 'z'; ch++)...;

– можно проверить выполнение некоторого произвольного условия:

for (n = 0; s[i] >= '0' && s[i] < '9'; i++)...;

или

for (n = 1; n*n*n <= 216; n++)...;

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

for (printf(" вводить числа по порядку! \n"); num!=6;)

scanf("%d", & num);

printf(" последнее число – это то, что нужно. \n");

В этом фрагменте первое сообщение выводится на печать один раз, а затем осуществляется прием вводимых чисел, пока не поступит число 6.

Переменные, входящие в выражения 2 и 3, можно изменять при выполнении кода цикла, например, значения k и delta:

for (n = 1; n < 10*k; n += delta)...;

Использование условных выражений позволяет во многих случаях значительно упростить программу, например:

for (i = 0; i<n; i++)

printf("%6d%c", a [i],((i%10==0) || (i==n–1))? '\n': ′ ′);

В этом цикле печатаются n элементов массива а по 10 в строке, разделяя каждый столбец одним пробелом и заканчивая каждую строку (включая последнюю) одним символом перевода строки. Символ перевода строки записывается после каждого десятого и n -го элементов. За всеми остальными – пробел.

Наиболее часто встречающиеся ошибки при создании циклов – это использование в коде цикла неинициализированных переменных и неверная запись условия выхода из цикла.

Чтобы избежать ошибок, нужно стараться:

– проверить, всем ли переменным, встречающимся в правой части операторов присваивания в коде цикла, присвоены до этого начальные значения (а также возможно ли выполнение других операторов);

– проверить, изменяется ли в цикле хотя бы одна переменная, входящая в условие выхода из цикла;

– предусмотреть аварийный выход из цикла по достижении некоторого количества итераций;

– если в состав цикла входит не один, а несколько операторов, нужно заключать их в фигурные скобки.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)