Студопедия

КАТЕГОРИИ:


Архитектура-(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).

Однак надалі ми не будемо використовувати ні множинні вирази в операторі ціклу, ні їх відсутність. Хоча подібні конструкції скорочують лістинг програми, але знижують її читабельність.

 

<== предыдущая лекция | следующая лекция ==>
Блоки і області видимості змінних | Цикл do
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 241; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.