<< Chapter < Page Chapter >> Page >
За контрола на тек на програма, за поврорување на една или повеќе наредби се додека е исполнет зададен услов, се користат три вида на наредби. Тоа се наредбите while, do...while и for наредбата. Секоја од наведените наредби има своја структура и синтакса и преку примери ќе се излустрираат овие наредби.

Наредби за повторување-циклуси

Структура на наредбите за повторување, циклуси (while и do. . . while)

While структурата за повторување е една од трите структури за повторување во програмскиот јазик C и воедно таа е наједноставна. Со оваа наредба се овозможува повторување на една или повеќе наредби.

Слично како и кај if стуктурата, така и во while структурата се задава услов ( задолжително во мали загради ( ) ) кој што се евалуира, односно проверува. Наредбата (наредбите) од циклусот се извршуваат се додека условот од while структурата е точен (враќа ненулта вредност). Повторувањето на наредбите од циклусот завршува кога условот ќе врати неточна вредност (нула 0) и програмата продолжува со извршување на следната наредба од телото на програмата (што не е дел од while структурата).

Ако треба да се изврши само една наредба, таа едноставно се пишува по while делот:

while ( услов ) наредба од циклусот ;

а ако пак треба да се извршат повеќе наредби (блок наредби) по while делот, тие се ставаат во блок ограничен со големи загради { } , односно :

while (услов) {една или повеќе наредби; }

Слика 1. Блок дијаграм на while структура

Пример 1.

Во овој пример се користи само една наредба во циклусот:

int j = 5; //primer so samo edna naredba vo cikluswhile (j>0) printf(“j = %d\n”,j--);

Оваа програма ќе печати броеви, почнувајки од 5, при што во секој циклус тие се намалуваат за 1 и на екранот ќе се отпечати:

j = 5

j = 4

ј = 3

ј = 2

ј = 1

Истиот пример може да се запише и со две наредби во циклусот, при што ќе се добие идентичен резултат:

int j=5; //primer so poveke naredbi vo cikluswhile(j>0) {printf(“j = %d\n”,j); j--;}

Доколку по грешка се напише знакот ; по while делот со условот, наредбата/наредбите од while структурата стануваат дел “ неправи ништо ”. Бидејќи условот останува непроменет програмата влегува во бесконечна јамка ( loop ). Во ваков случај програмата нема да врати резултат, бидејќи е зафатена со “неправењето ништо”, поради што следните наредби по while структурата никогаш не се извршуваат.

Пример 2.

Пример кога while стуктурата неправи ништо

int j = 5; while (j>0) ; printf(“j = %d\n”,j--);

Во овој пример заради знакот ; во наредбата

while (j>0) ;

таа ништо не извршува и на екранот ќе нема никаков одговор.

Многу е важно да се нагласи дека сите услови се while услови, односно “ се додека е исполнет условот се извршуваат наредбите ”. Наредбите од циклусот while се извршуваат се додека е точен условот (има вредност различна од 0). Затоа, за да не се влезе во бесконечна јамка, во наредбите што седуваат после while наредбата мора да постои наредба која ќе влијае на вредноста на условот во наредбата while.

Пример 3.

Во овој пример, програмерот најверојатно имал намера наредбата од while структурата да се извршува се додека j не стане еднакво на 0. Но направена е грешка во поставување на условот, точен услов би бил се додека ј е различно од 0 (ј != 0).

Затоа програмата:

int j = 5; printf(“start\n”);while (j == 0) printf(“j = %d\n”,j--);printf(“end\n”);

нема да ја извршува наредбата од while циклусот, туку само ќе отпечати:

start

end

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Вовед во програмирање. OpenStax CNX. Oct 28, 2013 Download for free at http://cnx.org/content/col11379/1.12
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Вовед во програмирање' conversation and receive update notifications?

Ask