КАТЕГОРИИ: Архитектура-(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 Виявлення помилок За допомогою засобів компілятора, які дозволяють полегшити процес виявлення помилок у програмі, можна створити динамічну модель, яка ілюструє процес виконання циклу. Головним таким засобом є покрокове виконання. Деталі роботи залежать від конкретного компілятора (для Турбо-С достатньо натискати на клавішу F7). В комплексі з покроковим виконанням можна використовувати вікно спостережень Watch, до якого можна додавати значення окремих змінних і слідкувати за ним в процесі виконання кроків програми. Такий засіб дозволяє нам вчасно виявити можливість зациклювання.
Інкрементуючий оператор не обов’язково повинен здійснювати операцію інкрементування лічильника циклу; замість інкрементування може використовуватися будь-яка інша операція. В далі приведеній програмі в операторі циклу використовується декрементування лічильника циклу. Програма запитує значення в користувача, а потім підраховує факторіал цього числа: #include <iostrem> using namespace std; int main() { unsigned int numb; unsigned long fact=1; cout<<”vvedit cile chyslo: “; cin>>numb; for(int j=numb;j>0;j--) fact*=j; cout<<numb<<”!=”<<fact<<endl; return 0; }
В цьому прикладі ініціалізуючий оператор присвоює змінній j значення, введене користувачем. Умовою продовження циклу є додатність значень j. Інкрементуючий вираз після кожної ітерації зменшує значення j на одиницю.
Звернемо увагу на те, що змінна j описана всередині оператору циклу: for(int j=numb;j>0;j--) fact*=j; Подібна конструкція є характерною для С++ і, як правило, найзручнішою для роботи з лічильником циклу. Таке визначення змінної є найближчим до місця її використання. Змінна, описана в операторі циклу, видима лише всередині цього циклу.
Замість одного ініціалізуючого виразу в операторі циклу for можна використати кілька виразів, розділених комами. Подібним чином можна використовувати більше одного інкрементуючого виразу. Тільки умова продовження циклу завжди повинна бути одна. Приведемо приклад:
for(j=0,alpha=100;j<50;j++,beta--) {//тіло циклу }
У даного циклу є звичайний лічильник у вигляді змінної j, але в операторі циклу, крім j, також ініціалізується змінна alpha і декрементується змінна beta. Змінні alpha i beta ніяк не зв’язані одна з одною чи зі змінною j. При використанні кількох ініціалізуючих чи чи інкрементуючих виразів необхідно розділяти їх комами. З трьох виразів, що використовуються при заданні циклу, жоден не є обов’язковим. Допустима навіть така конструкція for(;;) (так званий вічний цикл, еквівалентний циклу while з умовою продовження true). Однак надалі ми не будемо використовувати ні множинні вирази в операторі ціклу, ні їх відсутність. Хоча подібні конструкції скорочують лістинг програми, але знижують її читабельність.
Дата добавления: 2014-01-04; Просмотров: 244; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |