Подручја рада
Претрага
27. Наредбе за искакање из циклуса

Уводни део часа :
1. Шта су циклуси ?
2. Које су одлике циклуса ?
-------------------------------------------------------------------------------------------------------------------
Главни део часа :

Постоје ситуације у којима је коришћење goto исказа прихватљиво.
Два основна разлога против коришћења goto исказа су отежано разумевање програма и доказивање њихове коректности.
У специјалним ситуацијама које ћемо размотрити ниједан од ова два проблема се не појављује.

                                       СКОКОВИ ИЗЛАСКА КОД ПОЈАВЕ ГРЕШКЕ

Узмимо као пример функцију Pretrazi која врши бинарно претраживање једнодимензионалног, уређеног низа А, чији је компонентни тип integer, а индексни тип интервални (поддоменски) тип 1 .. N. Претпоставља се да су сви елементи низа различити. Задатак функције је да нађе онај елемент низа А који је једнак датом броју x. Претпоставља се да x задовољава релацију :

                                                                  A[1] <= x < A[N]

Резултат функције је индекс оног елемента низа који је једнак x. Проблем је у томе што такав елемент може и не постојати, што не знамо док не претражимо низ.
Исказ goto се може у овом случају јавити као скок повратка у тренутку када смо открили решење
постављеног проблема, тј. када смо нашли тражени елемент низа А.
Други пример употребе goto исказа се извршава у тренутку када се констатује да постављени
проблем, у ствари, није решив, због тога што низ А уопште не поседује елемент са траженом
особином. У том тренутку нема смисла завршити извршење тела функције на нормалан начин, јер у
том случају неки индекс мора бити придружен идентификатору Pretrazi као резултат функције. Због
тога се врши абнормални излаз из тела функције извршењем исказа goto 13.              

iskakanje.jpg

Одговорити на питања :
1. Да ли постоје ситуације у којима је коришћење исказа goto прихватљиво ?
2. Који су разлози против коришћења исказа goto ?
3. Када нема смисла завршити извршење тела функције на нормалан начин ?
4. Шта је у овом примеру goto 11 ?
5. Који је други облик овог исказа ?