Оператори за цикъл for, while, dowhile. Синтаксис,семантика. Област на дефиниране на променливите
| Информационни технологии | 2009-12-04 | 255 сваляния |
14. Оператори за цикъл: for, while, do/while. Синтаксис,семантика. Област на дефиниране на променливите.
Операторите за цикъл се използват за реализиране на циклични изчислителни процеси.
Изчислителен процес, при който оператор или група оператори се изпълняват многократно за различни стойности на техни параметри, се нарича цикличен.
Съществуват два вида циклични процеси:
индуктивни: Цикличен изчислителен процес, при който броят на повторенията е известен предварително, се нарича индуктивен цикличен процес.
- итеративни: Цикличен изчислителен процес, при който броят на повторенията не е известен предварително, се нарича итеративен цикличен процес. При тези циклични процеси, броят на повторенията зависи от някакво условие.
В езика C++ има три оператора за цикъл:
оператор for
Чрез него могат да се реализират произволни циклични процеси, но се използва главно за реализиране на индуктивни циклични процеси.
оператори while и do/while
Използват се за реализиране на произволни циклични процеси индуктивни и итеративни.
4.5.1. Оператор for
Използва се основно за реализиране на индуктивни изчислителни процеси.
Оператор for
Синтаксис
for (<инициализация>; <условие>; <корекция>)
<оператор>
където
- for (за) е запазена дума.
- <инициализация> е или точно една дефиниция с инициализация на една или повече променливи, или няколко оператора за присвояване или въвеждане, отделени със , и не завършващи с ;.
- <условие> е булев израз.
- <корекция> е един или няколко оператора, незавършващи с ;. В случай, че са няколко, отделят се със ,.
- <оператор> е точно един произволен оператор. Нарича се тяло на цикъла.
Семантика
Изпълнението започва с изпълнение на частта <инициализация>. След това се намира стойността на <условие>. Ако в резултат се е получило false, изпълнението на оператора for завършва, без тялото да се е изпълнило нито веднъж. В противен случай последователно се повтарят следните действия:
- Изпълнение на тялото на цикъла;
- Изпълнение на операторите от частта <корекция>;
- Пресмятане стойността на <условие>
докато стойността на <условие> е true.
Следната схема илюстрира изпълнението му:
false
true
for (<инициализация>; <условие>; <корекция>)
<оператор
Възможно е частите <инициализция>, <условие> и <корекция> поотделно или заедно, да са празни. Разделителите (;) между тях обаче трябва да фигурират. Ако частта <условие> е празна, подразбира се true.
Забележки:
1. Тялото на оператора for е точно един оператор. Ако повече оператори трябва да се използват, се оформя блок.
2. Частта <инициализация> се изпълнява само веднъж в началото на цикъла. Възможно е да се изнесе пред оператора for и остане празна.
Пример:
int i = 1;
for (; i<= n; i++)
fact = fact* i;
В нея не са допустими редици от оператори и дефиниция на променливи, т.е. недопустими са:
for (int i, i = 4;
или
int i;
for (i = 4, int j = 5;
а също две дефиниции, например
for (int i=3, double a = 3.5;
Нарича се така, тъй като в нея обикновено се инициализират една или повече променливи.
3. Частта <корекция> се нарича така, тъй като обикновено чрез нея се модифицират стойностите на променливите, инициализирани в частта <инициализация>. Тя може да се премести в тялото на оператора for като се оформи блок от вида {<оператор> <корекция>;},
Пример:
for (int i = 1; i<= n;)
Тагове от реферата: променливит, dowhile, синтксис, операори, семаика, while, дефиниране











