КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор цикла с предусловием и коррекцией for
Цикл реализует структурную схему, приведенную на рис. 8.2 (такой цикл еще называют циклом с параметром).
Рис. 8.2
Общий вид оператора: for (выражение 1; выражение 2; выражение 3) код цикла; где выражение 1 – инициализация счетчика (параметр цикла); выражение 2 – условие продолжения счета; выражение 3 – коррекция счетчика. Инициализация используется для присвоения счетчику (параметру цикла) начального значения. Выражение 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++)...; Первое выражение не обязательно должно инициализировать переменную. Необходимо только помнить, что первое выражение вычисляется только один раз перед тем, как остальные части начнут выполняться. num=0; for(printf(" вводить числа по порядку! \n"); num!=6;) scanf("%d", & num); printf(" последнее число – это то, что нужно. \n"); В этом фрагменте первое сообщение выводится на печать один раз, а затем осуществляется прием вводимых чисел, пока не поступит число 6. Переменные, входящие в выражения 2 и 3 можно изменять при выполнении кода цикла, например, значения k и delta: for (n = 1; n < 10*k; n += delta) k=delta--; Использование условных выражений позволяет во многих случаях значительно упростить программу, например: for (i = 0; i<n; i++) printf("%6d%c", a [i], (i%10==0 || i==n–1)? '\n': ’ ‘); В этом цикле печатаются n элементов массива а по 10 в строке, разделяя каждый столбец одним пробелом и заканчивая каждую строку (включая последнюю) одним символом перевода строки. Символ перевода строки записывается поле каждого десятого и n -го элементов. За всеми остальными – пробел. Наиболее часто встречающиеся ошибки при создании циклов – это использование в коде цикла неинициализированных переменных и неверная запись условия выхода из цикла. Чтобы избежать ошибок, нужно стараться: – проверить, всем ли переменным, встречающимся в правой части операторов присваивания в коде цикла, присвоены до этого начальные значения (а также, возможно ли выполнение других операторов); – проверить, изменяется ли в цикле хотя бы одна переменная, входящая в условие выхода из цикла; – предусмотреть аварийный выход из цикла по достижению некоторого количества итераций; – если в состав цикла входит не один, а несколько операторов, нужно заключать их в фигурные скобки.
Дата добавления: 2014-01-05; Просмотров: 287; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |